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. ASP.NET连接字符串和DSN连接
- 14. 在C#中使用字符串连接的字符串连接
- 15. 从字符输入连接字符串
- 16. 连接字符串/字符向量
- 17. 什么是oledb连接连接DSN的连接字符串
- 18. OraOLEDB.Oracle连接字符串
- 19. SQL连接字符串
- 20. __set和字符串连接
- 21. Mongodb MapReduce连接字符串?
- 22. 字符串连接问题
- 23. ODBC连接字符串(DSN)
- 24. EDMX连接字符串
- 25. 连接字符串无效
- 26. 试图连接字符串
- 27. visual foxpro连接字符串
- 28. 连接Boost Hana字符串
- 29. 解析连接字符串
- 30. 更改连接字符串
你想用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