請教關於字串轉變數的難題 |
尚未結案
|
skyline01
一般會員 發表:8 回覆:2 積分:2 註冊:2004-07-09 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
skyline01 您好: 程式中的變數名稱是為了給編譯階段編譯器辨識各變數之用,所以在編譯過後,這些變數就轉換成相對的位址了,也就是說,原先叫ABC的變數,已經不是以ABC存在了。
因此如果您要做到如上您所說的功能,就必須用間接的方式,把原先的變數以一個和變數名稱相同字串去表示,當user輸入該字串時,您在判斷後作相關的處理,例如,(底下的虛擬碼供您參考) if ( text=="ABC" ) result=ABC; // 取得其值
if ( text=="xyz" ) result=xyz;
......
或者,
if ( text=="ABC" ) result=&ABC; // 取得其位址
if ( text=="xyz" ) result=&xyz; 還有不同型態之間要能夠判斷與承接,所以要小心的處理傳回的值。供您參考。
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
skyline01:richtop大大敘述的很好但你也可以使用另一種方式 處理, 就是使用 typedef struct var_type { char var_name[100]; Variant value; } Var_Type; 或 typedef struct var_type { AnsiString var_name; int value1; // float value2; } Var_Type; Var_Type var_vars[200]; 等方式將你的定義變數置入,使用者輸入ABC你只要找到 var_vars[i].var_name="ABC"取出 var_vars[i].value1的值也是可以 請參考!Andy Chang
------
Andy Chang |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |