简单,关于string类型转换为char问题,谢谢! ( 积分: 30 )

  • 主题发起人 主题发起人 dailehao
  • 开始时间 开始时间
D

dailehao

Unregistered / Unconfirmed
GUEST, unregistred user!
temp: string;
temp:= 20050809;

if not copy(temp,1,1) in ['0'..'9'] then....
出错,提示类型不匹配!

请教,如何把copy(temp,1,1)值变为一个char类型
 
temp: string;
temp:= 20050809;

if not copy(temp,1,1) in ['0'..'9'] then....
出错,提示类型不匹配!

请教,如何把copy(temp,1,1)值变为一个char类型
 
if not temp[1] ....

String是Char数组下限为1
 
if not copy(temp,1,1) in ['0'..'9'] then....这句该为
if not (char(temp[1]) in ['0'..'9']) then...就行了
 
Char为单个字符,String为串,这样就行了:
vChar:=vString即可。
 
if not temp[1] in ['0'..'9'] then....
 
copy(temp,1,1)结果是个string
copy(temp,1,1)[1]// 这个不知道行不行

或者

temp[1]
 
你是想做判断吧:
i :integer;
temp :string;
begin
for i;=1 to strlen(temp) do //这个地方应该是length(temp)
begin
if not temp in ['0'..'9'] then//注意这个地方少了个括号,应该是
begin //if not (temp in ['0','9']) then
//你所做的操作
end
end
end;
 
if not temp[1] in ['0'..'9'] then
这个表达式是不成立的,
in 需要有序的类型.
 
更正一下:
var
i :integer;
temp :string;
begin
temp:='125tdd';//这个地方可以给他其他的值
for i:=1 to length(temp) do
begin
if not (temp in ['0'..'9']) then
begin
//你所做的操作
end
end
end

这个方法是没有问题的,只是少了一个扩号,还有应该用length,而不是strlen,strlen是用于字符数组的;至于你说的in需要有序的类型,无论subrange还是char都是有序类型,这是没有问题的。这个程序我运行了,以前也用过,是没有问题的,呵呵
 
多人接受答案了。
 
后退
顶部