判断问题(可能比较初级.见笑).顺便问一下,一个字符的string(比如'a')怎么转换成char? (38分)

  • 主题发起人 淡淡的笑
  • 开始时间

淡淡的笑

Unregistered / Unconfirmed
GUEST, unregistred user!
var
MyChar: set of char;
AddrArry:array of char;
i,j:integer;
Addr:string;
begin
Addr:='127.0.0.1';
MyChar:=['.','0'..'9'];
j:=length(Addr);
setlength(AddrArry,j);
LstrCpy(pchar(Addr),pchar(AddrArry));
// 从这里后,addr的值就变成不是原来的addr的值了,这是怎么回事
for i:=0 to j-1 do
begin
// 如果有方法可以把字串类型的'a'转换成字符类型的'a'
// 下一句就可以采用 copy(Addr,i+1,1) in MyChar 来判断了
if not(AddrArry in MyChar) then
begin
showmessage('error!');
break;
end;
end;
AddrArry:=nil;
end;

我的原意是判断 Addr 这个字串中是否含有除MyChar这个集合之外的字符
使用集合,pos,strscan 哪种方法比较好? (高效) 谢
 
咳,您好,你能告诉我ADDR是怎么定义的吗?
string类型转化成char类型可以这样去处理
如:
var
stemp :string;
aTemp:char;
begin
stemp :='successful';
aTemp :=chr(inttostr(ord(stemp[2])));//把stemp中的第二个字符即c转化成char型
 
addr:string; (是我定义的一个过程参数)
 
addr:stirng;
cha:char;
addr:='2423q4qrq';
cha:=addr[1];
 
LstrCpy(pchar(AddrArry),pchar(Addr));
 
知道错在哪儿了.呵呵..数组的第一个元素能为0.而是1.. AddrArry[0]为#0 -_-
 
多人接受答案了。
 
顶部