推 ckclark:其實是有'12' = '1' * 256 + '2' 04/14 13:06
感謝,已更正
※ 編輯: mantour 來自: 140.112.213.158 (04/14 16:47)
先搞清楚
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