全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:713
推到 Plurk!
推到 Facebook!

关于char 型数组的疑问?

尚未結案
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-30 16:10:35 IP:218.16.xxx.xxx 未訂閱
我定义一CHAR型数组,为起赋常量字符串能通过,为何赋变量却不行? [code] var   str:array[0..5] of char   i:integer; begin   for i:=0 to 5 do str=inttostr(i);//这里编译无法通过 str='a';//这样能通过。 end; 还请各位大侠指教 努力,相信会做的更好!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-30 16:24:24 IP:210.65.xxx.xxx 未訂閱
Hi:    因為經過 IntToStr 後結果為 String,與 Char 型態不合 而 'a' 型態則為 Char -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-30 16:33:01 IP:218.16.xxx.xxx 未訂閱
引言: Hi: 因為經過 IntToStr 後結果為 String,與 Char 型態不合 而 'a' 型態則為 Char -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 -------------------------------- < face="Verdana, Arial, Helvetica"> 哦!可是 str='aaaaa'; 也不会出错。 而且
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-30 17:11:34 IP:210.65.xxx.xxx 未訂閱
Hi:    Sorry !! 看錯你的意思    IntToStr 回傳值為 String,所以與 Array 型態不相同而產生錯誤 而'aaaaa' 的型態則有些爭議,
procedure TForm1.Button5Click(Sender: TObject);
var
    Str : Array[0..5] of char;
    X : String;
begin
   X := 'abcde';
   Str := X;
   (Sender AS TButton).Caption := Str;
end;
會產生錯誤,且
procedure TForm1.Button5Click(Sender: TObject);
var
    Str : Array[0..5] of char;
begin
   Str := 'abcdefghijk';
   (Sender AS TButton).Caption := Str;
end;
只要長度超過 6(Str 長度為 6)一樣會產生相同錯誤,因此,建議最好確認型態會比較好
procedure TForm1.Button4Click(Sender: TObject);
var
    Str : Array[0..5] of char;
    I   : Integer;
begin
    FOR I := 0 TO 10 DO
        BEGIN
            StrPCopy(Str,Copy(Str   IntToStr(I),1,6));
        END;
    (Sender AS TButton).Caption := Str;
end;
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-30 17:36:27 IP:61.155.xxx.xxx 未訂閱
VAR str:array[0..5] of char; i:integer; begin for i:=0 to 5 do str[i]:=(AnsiLastChar(inttostr(i)))^; showmessage(str[2]); end;
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-30 17:36:43 IP:61.155.xxx.xxx 未訂閱
VAR str:array[0..5] of char; i:integer; begin for i:=0 to 5 do str[i]:=(AnsiLastChar(inttostr(i)))^; showmessage(str[2]); end;
系統時間:2024-07-01 13:45:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!