这是一个非常简单的问题。
我有一个带有字符缓冲区 [250] 的结构。
struct testStruct{
char buffer[250];
};
比方说,我如何向该缓冲区添加“测试字符”?
我真的不能做像 newStruct.buffer = "test characters"; 这样简单的赋值
最佳答案
您可以使用函数 sprintf
或 snprintf
或 strcpy
或 strncpy
所以像这样:
sprintf(newStruct.buffer,"%s","test characters"); // doesnt protect against buffer overflow
snprintf(newStruct.buffer,250,"%s","test characters"); // guards against overflows
strcpy(newStruct.buffer,"test characters"); // as suggested in another answer also doesnt guard against overflows
strncpy(newStruct.buffer,"test characters",250);// guards against overflows
(而不是在 snprintf
和 strncpy
中明确提及大小 250,您可以改用 sizeof
函数/指令)
这会将“测试字符”放入缓冲区数组,末尾有一个 \0
字符 ...
如果以后需要,您可以使用 strcat
函数向其附加更多字符串。
这里是 sprintf 的 man
页面:
关于c++ - 如何添加到已分配的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19873985/