我又一个不停长的字符串, 其中的空格不定,有单词或数字
如何将他们分出来,譬如 S=' I AM 10 YEARS OLD '
要分成 a[1]=I A[2]=AM A[3]=10 A[4]=YEARS A[5]=OLD
不要告诉我用COPY (因为字符串中的单词,字母长度,及空格长度不定
谢谢
如何将他们分出来,譬如 S=' I AM 10 YEARS OLD '
要分成 a[1]=I A[2]=AM A[3]=10 A[4]=YEARS A[5]=OLD
不要告诉我用COPY (因为字符串中的单词,字母长度,及空格长度不定
谢谢
MyList: TList;
List: TList;
begin
MyList := TStringList.Create;
List := TStringList.Create;
MyList.Text := 'I AM 10 YEARS OLD';
List.Delimiter := ' ';
List.DelimitedText := MyList.Text;
Showmessage(List[0]);
Showmessage(List[1]);
...
end;
tt:= pos(' ',str);
while tt>0 do
begin
a[i]:= copy(str,1,tt -1);
delete(str,1,tt);
tt:= pos(' ',str);
inc(i);
end;
function spliteStr(s:widestring;c:widechar;var n:word):strArray;
var
i,j,l:word; {i,j: 循环变量;l: 源字符串的字符数}
begin
n:=0;
while (rightstr(s,1)=c) do {去掉右边的所有c }
begin
s:=leftStr(s,length(s)-1);
end;
l:=length(s);
for i:=0 to 63 do
begin
result[i]:='';
end;
j:=0;
result[0]:='';
for i:=1 to l do
begin
if s[i]<>c then
begin
result[j]:=result[j]+s[i];
end
else
begin
if (result[j]<>'') then
begin
j:=j+1;
end;
end;
end;
n:=j;
end;
strArray:=array of string;