Delphi7 字符串转化字符串数组

2024-11-29 21:05:01
推荐回答(4个)
回答1:

在Delphi7中,字符串本身就是数组,所以没有必要进行转换,可以直接使用的。

需要注意的是,字符串数组中,第一个字符的下标索引号为1,而不是常见的0.

见以下例程:

procedure TForm1.Button1Click(Sender: TObject);
var
  s:String;
  achar:char;
begin
  s:='asdf';
  achar:=s[3];
  showmessage(achar);//这里显示字符d,而不是f
end;

上例中,如果字符是汉字的话,在取数据时,将按字节处理,有可能会遇到取半个汉字的情况。


为了处理汉字等多字节字符,Delphi中有WideString类型,以及WideChar类型的字符。

使用时,将一个完整汉字作为一个元素(而不是两个字节)

见以下例程:

procedure TForm1.Button2Click(Sender: TObject);
var
  s:widestring;
  achar:widechar;
begin
  s:='这里s是一个汉字测试';//假设输入值为asdf
  achar:=s[3];
  showmessage(achar);//这里显示字符“s”
  achar:=s[4];
  showmessage(achar);//这里显示字符“是”
end;

回答2:

var
strlist: TStringList;
str: String;
begin
str:= 'a;b;c;d;e'
strlist:=TStringList.Create;
try
strlist.Delimiter := ';'; //分割符
strlist.CommaText := str; //要分割的字符串
//strlist.strings[0] = a
finally
strlist.Free;
end;

回答3:

procedure TForm1.StrToArray(str:string);
var
I,strLength : Integer;
arr:Array of char;
begin
setlength(arr, sizeof(str));
for I := 0 to sizeof(str)-1 do
begin
arr[I] := str[I+1];
Edt1.Text := Edt1.Text+' '+arr[I];
end;
end;

回答4:

strpcopy(value,edit1.text);