Re: [問題] 請問關於char與int之間互相轉換...

看板C_and_CPP (C/C++)作者 (朱子)時間16年前 (2010/04/14 09:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
先搞清楚 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

04/14 13:06, , 1F
其實是有'12' = '1' * 256 + '2'
04/14 13:06, 1F
感謝,已更正 ※ 編輯: mantour 來自: 140.112.213.158 (04/14 16:47)
文章代碼(AID): #1BnHvIp1 (C_and_CPP)
文章代碼(AID): #1BnHvIp1 (C_and_CPP)