看板 C_and_CPP 關於我們 聯絡資訊
先搞清楚 char a = '1'; 和 char a = 1 ; 是完全不一樣的東西 然後 char a = 12; 你得到的是ascii table裡對應於12的字元,這邊應該是某個控制字元 試試看 char a = 65; printf("%c",a); 應該沒有 char a = '12'; 這種東西,因為沒有'12'這個字元 // 更正: ckclark:其實是有'12' = '1' * 256 + '2' 然後 char a = '1'; 要得到數字1的方法可以用 int i = a - '0'; 如果要用atoi函數的話,記得c style string最後要多留一個空位放null字元 ※ 引述《weselyong (Wesely翁)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 我正在寫infix to postfix 的計算程式,我的infix to postfix沒有演算法上的問題 : 例如 : 輸入infix: A*(B+C)/D+2 : 會輸出postfix: ABC+*D/2+ : 可是我的問題是...ABC是個位數就ok,如果是十位數...就不行了 : 12+5會變成7,1被忽略 : 我後來想到的是如果我連讀到兩個字元,就把第一個*10+第二個,這樣就可以變成 : '12' + '5' : 可是...'12'是一個char所以就出現bug了 : 我最後作運算時候是用atof(char)把吃進來的轉到數字,但是遇到 : 我用剛那種算法求出來的就沒用了,請問我該怎麼辦@@ : 目前最希望可以找到函數f可以這樣 : char a = 12; f(a) = 12; : 如果沒有的話我只好慢慢再想別的辦法了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.213.158
ckclark:其實是有'12' = '1' * 256 + '2' 04/14 13:06
感謝,已更正 ※ 編輯: mantour 來自: 140.112.213.158 (04/14 16:47)