在字符串末尾附加两次null char

时间:2016-04-20 08:24:43

标签: c string

我对null char有疑问。我有一个缓冲区char buffer_2[245]

memset(buffer_2, 0, 245);

strcpy(buffer_2, "Test");

strcat(buffer_2, "\0");

我需要第三行吗?因为不是\ 0自动附加。

1 个答案:

答案 0 :(得分:2)

  

我需要第三行吗?因为不是\ 0自动附加。

您不需要第三行。 strcpy附加'\0'

来自man strcpy

  

strcpy()函数复制src指向的字符串,   包括终止空字节('\0')到dest指向的缓冲区。字符串可能不重叠,并且目标字符串   dest必须足够大才能收到副本。小心缓冲   超支! (见BUGS。)

另请注意:"Test"的类型为const char [5],其值为'T''e''s''t'和{{1} }。