[問題] 如何把strbuf 48個字元塞在intbuf裡面阿?

看板C_and_CPP作者 (就是愛希爾)時間11年前 (2013/12/30 04:31), 編輯推噓16(16034)
留言50則, 13人參與, 最新討論串1/1
char strbuf[48] = "111111111111111111111111111111111111111111111111"; int intbuf[48]; 如何把strbuf 48個字元塞在intbuf裡面阿?? 嘗試著用sscanf結果不行這樣用 想問大家有怎樣方式比較可以轉換 謝謝!! sscanf(strbuf, "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", &intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7], &intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15], &intbuf[16], & intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], & intbuf[23], &intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], & intbuf[29], &intbuf[30], &intbuf[31], &intbuf[32], &intbuf[33], &intbuf[34], & intbuf[35], &intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39], &intbuf[40], & intbuf[41], &intbuf[42], &intbuf[43], &intbuf[44], &intbuf[45], &intbuf[46], & intbuf[47] ); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.183.149

12/30 12:42, , 1F
你這樣是把intbuf的內容寫到strbuf裡吧?
12/30 12:42, 1F

12/30 12:46, , 2F
......amazing
12/30 12:46, 2F

12/30 12:54, , 3F
我是用sscanf沒有把intbuf寫入strbuf,只是我用%d它會
12/30 12:54, 3F

12/30 12:55, , 4F
把strbuf一連串的數字都scanf進去而不是一個一個數字這
12/30 12:55, 4F

12/30 12:55, , 5F
樣掃
12/30 12:55, 5F

12/30 12:57, , 6F
intbuf[i] = strbuf[i] - '0'; i=0~47
12/30 12:57, 6F

12/30 14:41, , 7F
sscanf(strbuf, "%1d%1d%1d%1d... ?? 推2樓 XD
12/30 14:41, 7F

12/30 15:35, , 8F
這篇有上CodeSOD的潛力 :D
12/30 15:35, 8F

12/30 17:59, , 9F
用迴圈跑不就好了
12/30 17:59, 9F

12/30 18:05, , 10F
memcpy嗎? 或者for() intbuf[i]=strbuf[i];
12/30 18:05, 10F

12/30 19:13, , 11F

12/30 19:14, , 12F
你宣告就錯了,strbuf 有 48 個 '1' 和 '\0'
12/30 19:14, 12F

12/30 19:15, , 13F
所以 size 是 49 才對
12/30 19:15, 13F

12/30 21:21, , 14F
還沒學回圈吧XD
12/30 21:21, 14F

12/30 21:21, , 15F
天啊,是世界奇觀
12/30 21:21, 15F

12/30 21:36, , 16F
樓樓上 Any 大, 原 PO 宣告並沒錯喔...
12/30 21:36, 16F

12/30 21:37, , 17F
標準裏面寫到, char s[] = "abc", t[3] = “abc”; 都可以.
12/30 21:37, 17F

12/30 21:38, , 18F
一個 size 4, 一個 size 3.
12/30 21:38, 18F

12/30 21:39, , 19F
請參見標準的 Initialization 小節.
12/30 21:39, 19F

12/30 21:42, , 20F
char array 並不一定當作字串用
12/30 21:42, 20F

12/30 21:43, , 21F
但如果原 PO 的是 C++ 程式, 那就錯了.
12/30 21:43, 21F

12/30 21:47, , 22F
這是 C 和 C++ 的差異之一. (C++ 標準 Character arrays 小節)
12/30 21:47, 22F

12/30 22:08, , 23F
如果不是當字串用,那還能用 sscanf?.......
12/30 22:08, 23F

12/30 22:48, , 24F
要把char array丟進int array,用sscanf就走錯路了,為何
12/30 22:48, 24F

12/30 22:48, , 25F
要跟著走?XD
12/30 22:48, 25F

12/30 22:49, , 26F
如果要把char array當字串,那丟進int array的意義在哪裡
12/30 22:49, 26F

12/30 22:49, , 27F
?XD
12/30 22:49, 27F

12/30 23:53, , 28F
請樓上 Any 和 sax 兩位大大看一下:
12/30 23:53, 28F

12/30 23:53, , 29F
for (i = 0; i < sizeof(strbuf); i++)
12/30 23:53, 29F

12/30 23:54, , 30F
sscanf(strbuf+i, "%1d", intbuf+i);
12/30 23:54, 30F

12/30 23:54, , 31F
這樣寫是否行得通, 或是有什麼問題 ?
12/30 23:54, 31F

12/30 23:56, , 32F
與題意不符,src & dest. 反了
12/30 23:56, 32F

12/31 00:00, , 33F
BTW, 版上多的是我看不見車尾燈的神人,別叫我大大>///<
12/31 00:00, 33F

12/31 00:23, , 34F
用 sscanf() 反了? sprintf() 才會是反了吧??
12/31 00:23, 34F

12/31 00:31, , 35F
咦?對捏。果然扯太多就會露出我只會嘴砲馬腳。(逃)
12/31 00:31, 35F

12/31 00:32, , 36F
1樓反了 害我還去查一下
12/31 00:32, 36F

12/31 00:34, , 37F
@yvb: 認真回,才疏學淺,看不出有什麼問題。
12/31 00:34, 37F

12/31 00:41, , 38F
看來快跨年, 大家都太 high, 頭都昏了 XD
12/31 00:41, 38F

12/31 00:50, , 39F
不專心是真的,經你提醒才像damody一樣去查一下的。(羞)
12/31 00:50, 39F

12/31 00:50, , 40F
工作上太久沒用 c std lib 都生疏了也是真的。(嘆)
12/31 00:50, 40F

12/31 00:55, , 41F
還是不要繼續丟人現眼好了,卡早睏卡有眠
12/31 00:55, 41F

12/31 04:34, , 42F
code 看起來沒問題,問題在我是 Anya 不是 Any...
12/31 04:34, 42F

12/31 04:37, , 43F
不過我的確不知道這樣轉意義何在... 真的 char array
12/31 04:37, 43F

12/31 04:37, , 44F
那 - '0' 才是正途...
12/31 04:37, 44F

12/31 14:09, , 45F
不好意思 Anya 大, 因為慣用前1字或前3字(若會重覆)來稱呼...
12/31 14:09, 45F

12/31 14:10, , 46F
至於何謂正途, 我不大了解. 話說 C 的 A Modern Approach 一書
12/31 14:10, 46F

12/31 14:11, , 47F
(參見 #1F5OOCoO) 書中 4.1 的 upc.c 就是 scanf %1d 方式...
12/31 14:11, 47F

01/01 17:32, , 48F
呃,我說的正途,只是說當 char array 來看的話
01/01 17:32, 48F

01/01 17:33, , 49F
- '0' 比較有效率,至於原 PO 到底要幹嘛...
01/01 17:33, 49F

01/01 17:34, , 50F
就不知道了... sscanf 沒什麼問題阿我前面也是這樣寫
01/01 17:34, 50F
文章代碼(AID): #1ImFSjaT (C_and_CPP)