主题:新手报到!!!提个问题?
machel
[专家分:0] 发布于 2005-01-05 20:09:00
回文概念:如LEVEL,123321等,
现在,要把这样的包括有更多字符的字符串,如“Was it a cat i saw?”也判断成回文,即对字符串中的大小写字母当作相同,除字母与数字外,其它的空格,标点等字符忽略不计。
程序怎么写啊??
[em6][em18][em19]
回复列表 (共4个回复)
沙发
麦鸟 [专家分:220] 发布于 2005-07-08 18:08:00
变量说明:
sStr$:待判断的字符串;nStr1:该字符串长度;x :循环变量
sTmpStr1$:临时字符串,内容为sStr$所有的小写变大写
sTmpStr2$:临时字符串,内容是sStr$中的字母和数字,且字母全为大写
nStr2:sTmpStr2$的长度; IsHuiwen:判断是否回文的标志变量
'开始
sStr$="Was it a cat i saw?"
nStr1=len(sStr$)
'把字母和数字取出来,其他的扔掉
sTmpStr1$=Ucase$(sStr$)
FOR x=1 to nStr1
anStr=ASC(MID$(sTmpStr1$,x,1))
IF anStr >= ASC("A") And anStr <= Asc ("Z") Then sTmpStr2$ = sTmpStr$+CHR$(anSTR)
IF anStr >= ASC("0") And anStr <= Asc ("9") Then sTmpStr2$ =
sTmpStr2$ + CHR$(anSTR)'判断第X个字符是否为字母和数字
NEXT
nStr2=Len(sTmpStr2$)
For x=1 to nStr2 '依次判断 第x个字符是否与倒数过来第x个字符相同
If Mid$(sTmpStr2$,x,1) <> Mid$(sTmpStr2$,nStr2+1-x,1) Then
IsHuiwen=1 '不相同则可以立即退出,并把判断标志置1
Exit For
End If
Next
If IsHuiwen=0 Then '如果标志没有置为一
'则表明:
Print "此字符串为回文字符串"
'否则:
Else
Print "此字符串不是回文字符串"
End if
End
3 楼
QB71 [专家分:1300] 发布于 2005-07-08 20:36:00
const L="0123456789abcdefghijklmnopqrstuvwxyz"
Mystr$="Was it a cat i saw?"
mystr$=lcase$(mystr$)
for i%=1 to len(mystr$)
a$=mid$(mystr$,i%,1)
if instr(l$,a$) then
str1$=str1$+a$
str2$=a$+str2$
endif
next
if str1$=str2$ then print "是回文字"
4 楼
moz [专家分:37620] 发布于 2005-07-09 01:17:00
果然是缩写高手
这是秋风? 那秋水是谁?
糊里糊涂的,分不清楚.
我来回复