[問題] c 字串分割

看板C_and_CPP作者 (5566)時間14年前 (2011/04/11 12:27), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
請問假如我想把一個長度為10的字串 str1[10] 分成五個長度為2的字串 儲存在另一個陣列裡str2[5][3] ex. abcdefghij ==> ab cd ef gh ij (str1) (str2[0]) (str2[1]) (str2[2]) (str2[3]) (str2[4]) 要怎麼寫比較好呢? 我一開始是想說用 strncpy(str2[0],str1,sizeof(str2[0])-1); str2[0][sizeof(str2[0])-1]='\0'; 這要str2[0]就是ab了吧  (?) 接著再把str1修改為cdefghij 然後就用同樣的辦法存cd 進去 str2[1] 依此類推... 可是這樣真的很麻煩 而且compile後 str2[0~4]結果都是出來一堆亂碼 有比較好的寫法嗎 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.17.155

04/11 12:31, , 1F
strncpy的前兩項是不是反了??
04/11 12:31, 1F

04/11 12:36, , 2F
沒有反 我搞錯了@@"
04/11 12:36, 2F

04/11 12:40, , 3F
不過我照你的函式來用,結果ok阿,沒有亂碼耶...
04/11 12:40, 3F

04/11 12:50, , 4F
問題在 str2[0][sizeof(str2[0])-1]='\0';
04/11 12:50, 4F

04/11 12:50, , 5F
沒結束掉的字串千萬別丟進 strlen 裡去
04/11 12:50, 5F

04/11 12:51, , 6F
啊看錯了 orz
04/11 12:51, 6F

04/11 12:51, , 7F
你把整份 code 貼上來吧
04/11 12:51, 7F

04/11 13:39, , 8F
str1 + 2 就會是 cdefghij 了, 不用修改本來的字串...
04/11 13:39, 8F
文章代碼(AID): #1DeeD9bv (C_and_CPP)