C++:strcat() 是否覆盖或移动 null?

标签 c++ character-arrays

现在让我们看看这个小程序

char s[20]="One";
strcat(s,"Two");
cout<<s<<endl;

这里起初 s 的值为“One”,对于视觉表示,这是 s 的值:

O - n - e -\0

然后我将“Two”添加到生成此字符串的末尾:

O - n - e - T - w - o -\0

现在您可以看到字符串中唯一的空值最初是在“One”之后,现在是在“OneTwo”之后

我的问题是: null 是否被字符串“Two”覆盖,然后在末尾添加它自己的 null。

或者是已经在开头的 null 又移回了末尾?

(这个问题可能看起来没什么区别,但我想知道我学到的一切)

谢谢

最佳答案

第一个 \0 被覆盖,并在连接字符串的末尾添加一个新的 \0。这里没有“移动”任何东西的范围。这些是值被分配到的位置。

关于C++:strcat() 是否覆盖或移动 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834655/

相关文章:

c++ - 递归回文测试

C++ 将字符数组转换为大写(无 MFC)

c++ - const-correctness 可以提高性能吗?

c++ - 在C/C++项目中查看 "include"树

python - 如何正确测试模式中的有效字符,可能使用字符数组或其他一些方法(正则表达式)

java - 对于这样的输入,简单但有效的括号检查器?

c - 将字符串输入二维数组

c++ - 更好地将: reserve vector capacity,预分配为大小或循环回退是什么?

c++ - 'main.cpp :1: No include path in which to find iostream'

c++ - 在C++中使用.lib编译然后使用.dll链接或显式调用dll?