【发布时间】:2020-09-13 23:16:16
【问题描述】:
有些语言有简单的方法来做到这一点,但我的问题是 C 和 C++。
我想在 Java 中做这样的事情:
public class sandbox {
public static void main(String[] args) {
System.out.println("Thank" + " you!");
}
}
并将其转移到 C 中:
#include <stdio.h>
int main() {
/* The easiest way is like this:
char *text1 = "Thank";
char *text2 = " you";
printf("%s%s\n", text1, text2);
*/
printf("Thank" + " you."); // What I really want to do
}
如何在这样的语言中连接字符串?
【问题讨论】:
-
C 文件的注释部分有什么问题?
-
C++ 和 C 是不同的东西。
-
当您也将此问题标记为 C++ 时,为什么不使用
std::string?支持字符串连接。 -
无论是 C 还是 C++,答案都是不同的
-
C 的答案是
strcat(或strncat函数),但它需要了解字符串是什么以及它是如何存储在内存中的。基本上,字符串是一个以 nul 结尾的字符数组,并且连接的目标缓冲区必须有足够的空间容纳新字符串。 C 中没有自动重新分配。