請問switch 結構是否能用string or AnsiString 的型態來判斷呢 |
答題得分者是:artist1002
|
terence_lee
初階會員 發表:62 回覆:82 積分:28 註冊:2004-07-15 發送簡訊給我 |
想請問各位前輩,我想要用switch 去做字串的判斷不知可行,我在help查詢switch的結果為 switch-type Specifies an int, char, enum type, or an identifier that resolves to one of these types. 如果我想要的是 AnsiString x="abcdef"; switch(x.subString(1,1))
{
case "a" : ShowMessage("a"); break;
case "b" : ShowMessage("b"); break;
case "c" : ShowMessage("c"); break;
} 是否可行呢?
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
switch 必須是 int 型態
在這個例子可以用下面的方式來作
AnsiString x="abcdef"; switch(x[1]) { case 'a' : ShowMessage("a"); break; case 'b' : ShowMessage("b"); break; case 'c' : ShowMessage("c"); break; }如果要判斷的是字串的話,建議先做字串表如TStringList的方式 再用IndexOf來做switch的動作.如 TStringList *slList; slList = new TStringList(); slList->Add("abc") slList->Add("def") slList->Add("ghi") AnsiString strtest="def"; switch(slList->IndexOf(strtest)) { case 0 : ShowMessage("abc"); break; case 1 : ShowMessage("def"); break; case 2 : ShowMessage("ghi"); break; default : ShowMessage("No Match"); break; } |
terence_lee
初階會員 發表:62 回覆:82 積分:28 註冊:2004-07-15 發送簡訊給我 |
謝謝 artist1002 大大的回應,您的方法相當好,用TStringList來達成,小弟目前的做法是用指標的形式,就像下面一樣,因為一來不想改用if來做,另一方面也不想多個指標來使用說..
AnsiString x="abcdefgh";
char *s;
s=x.c_str(); switch(s[1])
{
case 'a' : ShowMessage("a"); break;
case 'b' : ShowMessage("b"); break;
case 'c' : ShowMessage("c"); break;
}
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
引言: 謝謝 artist1002 大大的回應,您的方法相當好,用TStringList來達成,小弟目前的做法是用指標的形式,就像下面一樣,因為一來不想改用if來做,另一方面也不想多個指標來使用說.. AnsiString x="abcdefgh"; char *s; s=x.c_str(); switch(s[1]) { case 'a' : ShowMessage("a"); break; case 'b' : ShowMessage("b"); break; case 'c' : ShowMessage("c"); break; }不用轉成char *指標來作. AnsiString類別有[]的operation 如下就可以了 AnsiString x="abcdefgh"; switch(x[1]) { case 'a' : ShowMessage("a"); break; case 'b' : ShowMessage("b"); break; case 'c' : ShowMessage("c"); break; } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |