回 帖 发 新 帖 刷新版面

主题:新手报到!!!提个问题?

回文概念:如LEVEL,123321等,

现在,要把这样的包括有更多字符的字符串,如“Was it a cat i saw?”也判断成回文,即对字符串中的大小写字母当作相同,除字母与数字外,其它的空格,标点等字符忽略不计。
程序怎么写啊??
[em6][em18][em19]

回复列表 (共4个回复)

沙发

 变量说明:                                                         
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







板凳

a

3 楼

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 楼

果然是缩写高手

这是秋风? 那秋水是谁?
糊里糊涂的,分不清楚.

我来回复

您尚未登录,请登录后再回复。点此登录或注册