goe*_*goe 5 c string overwrite
我用一个字符串:
char word[100];
Run Code Online (Sandbox Code Playgroud)
我从0开始为每个位置添加一些字符.但是我需要能够清除所有这些位置,以便我可以从0开始添加新字符.
如果我不这样做,那么如果第二个字符串缩短,那么第一个字符串在添加第二个字符串时最终会从第一个字符串中获得额外的字符,因为我没有覆盖它们.
Hea*_*utt 12
如果使用C样式的零终止字符串,则无需清除它们.您只需要将字符串中最后一个字符后面的元素设置为NUL('\ 0').
例如,
char buffer[30] = { 'H', 'i', ' ', 'T', 'h', 'e', 'r', 'e', 0 };
// or, similarly:
// char buffer[30] = "Hi There"; // either example will work here.
printf("%s", buffer);
buffer[2] = '\0';
printf("%s", buffer)
将输出
嗨,
你好
即使它仍然是真的buffer[3] == 'T'.