如何添加“.”到 C 中的 char Array := "Hello World",所以我得到一个 char Array: "Hello World."这个问题看起来很简单,但我很挣扎。
尝试了以下方法:
char str[1024];
char tmp = '.';
strcat(str, tmp);
但它不起作用。它向我显示了错误:“传递‘strcat’的参数 2 使指针来自整数而不进行强制转换” 我知道在 C 中,char 也可以转换为 int。我还必须将 tmp 转换为 char 数组还是有更好的解决方案?
最佳答案
strcat
有声明:
char *strcat(char *dest, const char *src)
它需要 2 个字符串。 While this compiles:
char str[1024] = "Hello World";
char tmp = '.';
strcat(str, tmp);
这将导致错误的内存问题,因为 strcat
正在寻找一个空终止的 cstring。你可以这样做:
char str[1024] = "Hello World";
char tmp[2] = ".";
strcat(str, tmp);
如果你真的想追加一个字符,你需要创建你自己的函数。像这样:
void append(char* s, char c) {
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
append(str, tmp)
当然,您可能还想检查您的字符串大小等以确保内存安全。
关于c - 如何将 char/int 添加到 C 中的 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055713/