我怎样才能添加'.' to char:= C中的"Hello World",所以我得到一个char数组:"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个字符串.虽然这编译:
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)
当然,您可能还需要检查字符串大小等,以确保内存安全.