[問題] char + char

看板C_and_CPP作者 (奇怪 還沒收到??)時間15年前 (2010/05/16 16:57), 編輯推噓10(10037)
留言47則, 10人參與, 最新討論串1/1
請問... char a= '3'; char b= '3'; 我要如何做才能讓 cout<<a+b<<endl; 如何才能讓a+b順利的跑出 6 因為他一值把ASCII code 相加print 給我= =||||||| -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.178.38 ※ 編輯: m13m13m 來自: 140.115.178.38 (05/17 00:58)

05/17 00:58, , 1F
cout << a + (b - '0') << endl; (大概吧...)
05/17 00:58, 1F

05/17 00:59, , 2F
樓上的是個解決方式,但是...最佳的解法是你不要這樣寫...
05/17 00:59, 2F

05/17 00:59, , 3F
cout << (char)(a + (b - '0')) << endl; 才對
05/17 00:59, 3F

05/17 01:01, , 4F
同意二樓 應該可以不必寫成這樣
05/17 01:01, 4F

05/17 01:03, , 5F
好我試看看 先謝一下
05/17 01:03, 5F

05/17 01:11, , 6F
請問james大 這樣可以行的通的原理是甚麼阿?
05/17 01:11, 6F

05/17 01:11, , 7F
如果我今天有一大串 數字char input[13]; 裡面全部放integ
05/17 01:11, 7F

05/17 01:11, , 8F
er 有沒有甚麼辦法 可以讓char input裡的char通通變成 int
05/17 01:11, 8F

05/17 01:12, , 9F
我要做兩段大數的加減法...
05/17 01:12, 9F

05/17 01:12, , 10F
舉個例子吧 什麼樣的東西要變成什麼樣的東西
05/17 01:12, 10F

05/17 01:18, , 11F
char input1[4]="123";
05/17 01:18, 11F

05/17 01:18, , 12F
char input2[4]="123";
05/17 01:18, 12F

05/17 01:18, , 13F
我要讓input1 + input2 變成 246 我會一個一個位元去處理
05/17 01:18, 13F

05/17 01:18, , 14F
可是在每個位元的相加上要怎麼樣 (是多做- '0')這個動作就
05/17 01:18, 14F

05/17 01:18, , 15F
ok 了嗎?
05/17 01:18, 15F

05/17 01:19, , 16F
我先試看看好了xd...
05/17 01:19, 16F

05/17 01:24, , 17F
j大的方法可行的原因, 去了解一下ASCII與你看到的文字怎
05/17 01:24, 17F

05/17 01:24, , 18F
麼對應背後的編碼就知道了; 至於你的問題, 找找看
05/17 01:24, 18F

05/17 01:24, , 19F
atoi?
05/17 01:24, 19F

05/17 01:25, , 20F
char string轉int的相關函數試用看吧.
05/17 01:25, 20F

05/17 01:25, , 21F
h大的推文神奇的和小弟的接起來了XDDD
05/17 01:25, 21F

05/17 01:27, , 22F
一切都是巧合 一切都是巧合XD
05/17 01:27, 22F

05/17 01:27, , 23F
atoi()
05/17 01:27, 23F

05/17 01:28, , 24F
抱歉 ~hilorrk 不小心的 (可憐的研究生上)
05/17 01:28, 24F

05/17 01:29, , 25F
應該說 hilorrk 大 XD
05/17 01:29, 25F

05/17 01:29, , 26F
我沒按到最後就推了 ~囧
05/17 01:29, 26F

05/17 01:30, , 27F
05, 17, 01, 24, 19(樓), 再找個數字就可以買樂透了XD
05/17 01:30, 27F

05/17 01:31, , 28F
那補充一下 stringstream 或許也可以
05/17 01:31, 28F

05/17 01:35, , 29F
好我試試 = =|||好累阿...
05/17 01:35, 29F

05/17 01:38, , 30F
stringstream +1, 好處就是有狀態可以測試
05/17 01:38, 30F

05/17 01:39, , 31F
我剛忽然發現,按照原po的需求... ...好像 >///<
05/17 01:39, 31F

05/17 01:47, , 32F
可以用阿 XD
05/17 01:47, 32F

05/17 01:53, , 33F
我是在寫大數相加的作業 但是規定不能用string = =||||
05/17 01:53, 33F

05/17 01:56, , 34F
你已經用了C-style string 了阿~ > <, 你需要每個位元
05/17 01:56, 34F

05/17 01:57, , 35F
都用一個整數表示, 用字元的話還要考慮到輸出的問題
05/17 01:57, 35F

05/17 01:58, , 36F
      ^儲存
05/17 01:58, 36F

05/17 02:00, , 37F
喔對 可以用c-string 不能用c++ string那隻class提供的
05/17 02:00, 37F

05/17 02:00, , 38F
功能
05/17 02:00, 38F

05/17 03:37, , 39F
標準C建議使用strtol
05/17 03:37, 39F

05/17 21:54, , 40F
既然是大數相加..就乖乖implement吧 那些字串轉整數型態
05/17 21:54, 40F

05/17 21:55, , 41F
的方法都是在64bits還存的下的情況才能用的XD
05/17 21:55, 41F

05/17 22:42, , 42F
不是 cout << (a-'0')+(b-'0')<<endl; 嗎?@@"
05/17 22:42, 42F

05/17 22:43, , 43F
不太懂為什麼只要減一個0? @@"
05/17 22:43, 43F

05/17 22:51, , 44F
因為兩個都減0, 就是純數字3, 而不是原來ASCII拼出的'3'
05/17 22:51, 44F

05/17 22:51, , 45F
這樣....
05/17 22:51, 45F

05/17 22:54, , 46F
喔喔 原來是要char的6唷 XD" 狀況外 哈
05/17 22:54, 46F

05/17 23:17, , 47F
其實小弟我也不是很清楚他想要做啥米XD
05/17 23:17, 47F
文章代碼(AID): #1By2FuWI (C_and_CPP)