统计字符串中的字符和个数?????

teapost 2005-10-11 02:50:17
今天做一道题, 输入一个字符串,要求分别统计其中 中、英文字母,空格,数字字符、和 其他字符个数, 并显示它们。

请问大家 这个怎么入手 用ASCII码比较吗? 请大家指点下!
...全文
434 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
teapost 2005-10-13
  • 打赏
  • 举报
回复
谢谢路口就在不远处!!!! 谢谢十豆三!!!!!!
十豆三 2005-10-12
  • 打赏
  • 举报
回复
楼上的这句疏忽了吧

Case (onechar>='A' AND onechar<='Z') OR ( onechar>='z' AND onechar<='z')

应该为:

Case (onechar>='A' AND onechar<='Z') OR ( onechar>='a' AND onechar<='z')
zsjiaming 2005-10-12
  • 打赏
  • 举报
回复
是的,谢谢版主修正.打错了
zsjiaming 2005-10-11
  • 打赏
  • 举报
回复
Local aresult(5,2)
*Input '请输入字符串' To ctxt
ctxt='1324rka见证sj万d12 fklajadfj成长 a ;l d skj人flkqjdf中国'

cc_num(ctxt,@aresult)

? ' 中文个数:"'+aresult(1,1)+'",共'+Alltrim(Str(aresult(1,2)))+'个',
? ' 英文个数:"'+aresult(2,1)+'",共'+Alltrim(Str(aresult(2,2)))+'个',
? ' 空格个数:"'+aresult(3,1)+'",共'+Alltrim(Str(aresult(3,2)))+'个',
? ' 数字个数:"'+aresult(4,1)+'",共'+Alltrim(Str(aresult(4,2)))+'个',
? '其它字符个数:"'+aresult(5,1)+'",共'+Alltrim(Str(aresult(5,2)))+'个'

Return



Function cc_num
Lparameters ctxt,aso
ntxtlen=Len(ctxt)
For i=1 To 5
aso(i,1)=""
aso(i,2)=0
Endfor

For i=1 To ntxtlen
onechar=Substr(ctxt,i,1)
Do Case
Case (onechar>='A' AND onechar<='Z') OR ( onechar>='z' AND onechar<='z')
aso(2,1) = aso(2,1) + onechar
aso(2,2) = aso(2,2) + 1
Case onechar>='0' And onechar<='9'
aso(4,1) = aso(4,1) + onechar
aso(4,2) = aso(4,2) + 1
Case Asc(onechar)==32
aso(3,1) = aso(3,1) + onechar
aso(3,2) = aso(3,2) + 1
Case Asc(onechar)>=160
If i<ntxtlen &&可以取下一个字符
If Asc(Substr(ctxt,i+1,1))>=160
aso(1,1) = aso(1,1) + Substr(ctxt,i,2) &&取二个字节
aso(1,2) = aso(1,2) + 1
i=i+1 &&因为取了二个字节
Endif
Endif
Otherwise
aso(5,1) = aso(5,1) + onechar
aso(5,2) = aso(5,2) + 1
Endcase
Endfor

Return
十豆三 2005-10-11
  • 打赏
  • 举报
回复
*取得字符串中双字节(中文和中文符号).英文字母.空格.数字字符和其他字符个数,并显示它们

*----------------------------------------------------------------------------------

lcString="adfd1成B2{1,d功.fds f*5/7!&7"

LOCAL lc中文,ln中文个数,lc英文,ln英文个数,lc空格,ln空格个数,lc数字,ln数字个数,lc其他字符,ln其他字符个数
STORE '' TO lc中文,lc英文,lc空格,lc数字,lc其他字符
STORE 0 TO ln中文个数,ln英文个数,ln空格个数,ln数字个数,ln其他字符个数
FOR I=1 TO LEN(lcString)
IF ISLEADBYTE(SUBSTR(lcString,I,1)) &&中文(中文及中文符号是双字节)
lc中文=lc中文+SUBSTR(lcString,I,2)
I=I+1
ln中文个数=ln中文个数+1
LOOP
ELSE
DO CASE
CASE UPPER(SUBSTR(lcString,I,1))$'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
lc英文=lc英文+SUBSTR(lcString,I,1)
ln英文个数=ln英文个数+1
CASE SUBSTR(lcString,I,1)=SPACE(1)
lc空格=lc空格+SUBSTR(lcString,I,1)
ln空格个数=ln空格个数+1
CASE SUBSTR(lcString,I,1)$'1234567890'
lc数字=lc数字+SUBSTR(lcString,I,1)
ln数字个数=ln数字个数+1
OTHERWISE
lc其他字符=lc其他字符+SUBSTR(lcString,I,1)
ln其他字符个数=ln其他字符个数+1
ENDCASE
ENDIF
ENDFOR
?'此字符串中含有中文(含中文符号):',ALLTRIM(STR(ln中文个数)),'个。'
??'是:',lc中文
?'此字符串中含有英文字母:',ALLTRIM(STR(ln英文个数)),'个。'
??'是:',lc英文
?'此字符串中含有空格:',ALLTRIM(STR(ln空格个数)),'个。'
??'是:',lc空格
?'此字符串中含有数字:',ALLTRIM(STR(ln数字个数)),'个。'
??'是:',lc数字
?'此字符串中其他字符:',ALLTRIM(STR(ln其他字符个数)),'个。'
??'是:',lc其他字符

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧