B bluedna Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #1 用户输入字符串如(a6daw23d!~4G^%3NJJ*8j),我想取出其中的英文字母和数字,请问该怎么 做??谢谢!! 我是个新手,希望各位不吝赐教!!
田 田伯光 Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #2 For i:= 0 To Lengh(String)- 1 do if Ord或者Chr(String)属于某一ASCII码范围 then 做你想做的事情
B bluedna Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #3 我想取出其中的英文字母和数字存入一个字符变量中??
B bluedna Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #4 我想取出其中的英文字母和数字存入一个字符串(string)变量中??
W windbell Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #5 var str1,str2:string; i:integer; begin str1:='a6daw23d!~4G^%3NJJ*8j' str2:=''; for i:=1 to length(str1) do if str1 in ('a'..'z','A'..'Z','0'..'9') then str2:=str2+str1;//这里只是演示,其实字符串和字符不能相加的,你可以想办法 end;
var str1,str2:string; i:integer; begin str1:='a6daw23d!~4G^%3NJJ*8j' str2:=''; for i:=1 to length(str1) do if str1 in ('a'..'z','A'..'Z','0'..'9') then str2:=str2+str1;//这里只是演示,其实字符串和字符不能相加的,你可以想办法 end;
T twos Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #7 就那个for循环就可以 如果字符串很大,有上千个字符, 那么最好不要用str2:=str2+str1这种形式,因为这样会导致频繁分配内存,速度慢 而是setlength(str2,len);//先设定好一个长度 然后,str2[r]:=str1,也就是一个个的赋值
就那个for循环就可以 如果字符串很大,有上千个字符, 那么最好不要用str2:=str2+str1这种形式,因为这样会导致频繁分配内存,速度慢 而是setlength(str2,len);//先设定好一个长度 然后,str2[r]:=str1,也就是一个个的赋值
B bluedna Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-26 #8 我用了上面的例子,提示[Error] Unit1.pas(37): ')' expected but '..' found,好像 对..系统不认???