Re: [問題] 一堆字串要如何連接呢?strcat?

看板C_and_CPP作者 (jimmytseng)時間12年前 (2013/10/21 23:25), 編輯推噓0(009)
留言9則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《geminicstar (小散)》之銘言: : 我平時很少寫C,我想問要怎樣可以做到VB中的字串連接呢? : ex. A & B & C : 只用 & 即可! : 因為我要串大量字串~strcat能做到嗎? : 有其他更好的方法嗎?請各位大大提點一下! : 我有想說宣告Array然後用for來串 : 但還沒做出來 #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int array_lens=0; char* array = NULL; char* A = "12456"; char* B = "3215dsfds"; char* C = "fdsfs9fdsfds"; array_lens = strlen(A)+ strlen(B)+ strlen(C)+1; array = (char*)malloc(sizeof(char)*array_lens); sprintf(array,"%s%s%s",A,B,C); printf("%s\nlen is %d\n",array,strlen(array)); free(array); return 0; } 這樣如何? 因為有點不太懂你大量字串的A,B,C怎來的,只好自己先設定。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.173.202

10/21 23:33, , 1F
buffer overrun
10/21 23:33, 1F

10/21 23:34, , 2F
overrun了1 byte的0x00 heap表示不開心
10/21 23:34, 2F
拍謝,所以應該改成array_lens = strlen(A)+ strlen(B)+ strlen(C)+1; ? ※ 編輯: jimmytzeng 來自: 219.70.173.202 (10/21 23:39)

10/22 01:35, , 3F
西滴~ 千萬別忘了結尾的 '\0'
10/22 01:35, 3F

10/22 02:00, , 4F
如果字串變數真的很多 我會覺得原po的陣列+迴圈比較省事
10/22 02:00, 4F

10/22 02:22, , 5F
問題是陣列法還在寫, 這篇已經寫完了, 有code就贏了...
10/22 02:22, 5F

10/22 02:23, , 6F
紙老虎畫得再威猛, 還是比不過真老虎...
10/22 02:23, 6F

10/22 13:03, , 7F
都可阿 看他自己想用什麼方法 只是兩種code都不難寫吧
10/22 13:03, 7F

10/22 13:04, , 8F
不過提到有for讓人覺得是不知道一堆幾個字串
10/22 13:04, 8F

10/22 19:55, , 9F
很大量的時候 一堆%s / 直接看for-loop上界 這後者比較容易吧
10/22 19:55, 9F
文章代碼(AID): #1IPKTlna (C_and_CPP)
文章代碼(AID): #1IPKTlna (C_and_CPP)