内容正文:
专题二十四 字符串问题
1
PART
01
基本知识梳理
2
概念
第1课
一张图学透信息的特征
P2
字符串(string)是由数字、字母、标点符号组成的一串字符。它是VB中表示文本的数据类型,为符号或数值的一串连续序列。
3
字符与数值的区别
数值表示数的大小,可以进行数值加减乘除运算,
计算机存储时,数值存储的是数的大小。
字符表示符号,代码中字符要加双引号,
计算机存储时,字符存储的是其每个字符的内码。
英文字符用ASCII码
4
字符串相关的函数
Str(x)与Val(x)
Chr(x)与Asc(x)
Mid(x,n,k)与Len(x)
5
PART
02
典例分析:基础字符串问题
7
字符串基础题型
字符串问题是算法考题中非常常见的一类问题。
常见基础题型如下:
字符个数统计
字符串
与内码
字符串与数值
字符
串简单处理
8
字符统计问题
文本框Text1中输入一段字符串,程序运行后,
1、文本框Text2中输出字符串中数字的个数?
2、文本框Text2中输出字符串中大写字母的个数?
3、文本框Text2中输出字符串中小写字母的个数?
4、文本框Text2中输出字符串中字母的个数?
s = Text1.Text
k=0
For i = 1 to _______
__________
if ___________ then k=k+1
Next i
Text2.Text=Str(k)
字符为字母或数字的判断
1、字符串中数字的个数?
if c>=“0” And c<=“9” then k=k+1
2、字符串中大写字母的个数?
if c>=“A” And c<=“Z” then k=k+1
3、字符串中小写字母的个数?
if c>=“a” And c<=“z” then k=k+1
4、字符串中字母的个数?
if c>=“A” And c<=“Z” Or c>=“a” And c<=“z” then k=k+1
课后思考(若要统计非字母、非数字的个数? )
字符问题解题思路
从果树上摘果实,按顺序摘,每摘一个就对该水果进行相应的处理,直至所有水果处理完毕。
字符统计问题解题思路
循环遍历字符串
Mid函数截取字符
对截取字符判断,计数
k=0 ‘计数器归零
s = Text1.Text
For i = 1 to Len(s)
c=Mid(s,i,1)
判断语句块 ‘判断字符c并计数k=k+1
Next i
Text2.Text=Str(k)
Private Sub Command1_Click( )
Dim S As String, S1 As String, S2 As String
S=Text1.Text
For i = 1 to ___________
S1=Mid(S,i,1)
if ____________Then
____________
Else
S2=S1
End if
Text2.Text=Text2.Text+S2
Next i
End Sub
字符与内码问题
小明设计了一个VB程序,实现将输入字符串中的小写字母转化成大写字母,并按原位置输出。例如输入字符串”Entrance”,输出字符串“ENTRANCE”。部分VB程序段如下,请在划线处填入合适的代码。
参考答案:
Len(s)
if S1>=“a” And S1<=“z”
S2=Chr(Asc(S1)-32)
字符与内码问题的解题思路
内码处理时:利用Asc(x)函数与Chr(x)函数
ASCII码中大小写字母的关系:
大写字母比小写字母的ASCII码值小32
小写转换大写 S2=Chr(Asc(S1)-32)
大写转换小写 S2=Chr(Asc(S1)+32)
字符串删除问题
删除重复字符的VB程序。程序功能如下:在文本框Text1中输入字符串,单击“删除重复字符”按钮,在文本框Text2中输出处理后的结果。程序效果图如图所示。补充代码。
Private Sub Command1_Click( )
Dim n as integer , i as integer , flag as integer , x as integer , s as integer
x=Text1.Text
_____________
s = s+Mid(x,1,1)
For i = 2 to n
flag = 0
For j =1 to len(s)
if ______________ Then
flag =1 : Exit For
End if