Q
連接字符*
3
A
回答
8
6
size_t newlen = strlen(a) + strlen(b);
char *r = malloc(newlen + 1);
strcpy(r, a);
strcat(r, b);
3
在C++:
std::string foo(a);
std::string bar(b);
std::string result = foo+bar;
3
如果你的系統有asprintf()(很常見的這些天),那麼它很簡單:
char* p;
int num_chars = asprintf(&p, "%s%s", a, b);
第二個參數是格式字符串類似於到printf()
,所以你可以混合常量文本,整數,雙精度等,控制字段寬度和精度,填充字符,調整等。如果num_chars!= -1(錯誤),那麼p
然後指向堆分配的內存,可以用free()
釋放。使用asprintf()
可以避免相對詳細且容易出錯的步驟來自行計算所需的緩衝區大小。
在C++:
std::string result = std::string(a) + b;
注:a + b
增加了兩個三分球 - 不是你想要的,因此+
運營商至少一側需要看std::string
,這將確保特定字符串連接符用來。
(strncat
的接受答案值得進一步評論:它可以用來連接現有的可寫緩衝區中的ASCIIZ字符串之後的更多文本數據,因爲該緩衝區有空間可用。如果你使用malloc()
來確保它的長度恰到好處,那麼可以使用strcat()
而不是strncat()
。)
相關問題
- 1. 連接字符
- 2. 字符串字符連接
- 3. 字符串連接
- 4. 連接字符串
- 5. 字符串連接?
- 6. 連接字符串
- 7. 連接字符串
- 8. 連接字符串:
- 9. 連接字符串
- 10. 字符串連接
- 11. 連接字符串
- 12. 連接字符串
- 13. 連接字符串
- 14. 連接字符串
- 15. 連接字符串
- 16. 字符串連接
- 17. 連接字符串
- 18. 字符串連接
- 19. 字符串連接
- 20. 連接字符串?
- 21. 連接字符串
- 22. 連接字符串
- 23. 字符串連接
- 24. 字符串連接
- 25. 連接字符串
- 26. 連接字符串
- 27. 連接字符串文字
- 28. 左連接字符+連接值
- 29. ASP.NET連接字符串和DSN連接
- 30. 在C#中使用字符串連接的字符串連接
你想用C或C++來做到這一點嗎? – 2011-02-13 16:01:12
使用`char *`指向字符串文字是不明智的:字符串文字的內容不可修改,所以使用`const char *`是個好主意。 (在C字符串中,文字的類型爲char [N],在C++中它們的類型爲const char [N],但是在兩種語言中,都可以隱式地向字符串文字中獲得一個'char *向後兼容真正的舊代碼。) – 2011-02-13 16:03:44
** [Concatenation](http://en.wikipedia.org/wiki/Concatenation)**是您正在尋找的術語。 – meagar 2011-02-13 16:06:17