c++ - 使用 '\0' 作为比较操作数

标签 c++ arrays

我的函数应该在屏幕上列出 char 数组的所有元素。但如果阵列完成,它应该停止。数组的大小是可变的。我认为数组以'\0' 结尾。所以我这样做了:

for(int i=0; i< size; i++){
    if(word[i] != '\0')
        cout<< word[i];
}

但程序并不止于此。它会创建一些随机符号。

例如字符数[] = "0123"
该程序给出:0123§&

我的 if 条件有什么问题?

最佳答案

问题是您的代码在遇到'\0' 时不会停止,它只是不打印'\0' 并继续。

尝试改变你的 for 循环条件

for(int i=0; word[i] != '\0'; i++){
    cout<< word[i];
}

如果你只想打印它,一个简单的

cout<<word;

就够了

关于c++ - 使用 '\0' 作为比较操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759126/

相关文章:

c++ - 与 std::unique_ptr 关联的错误

c++添加操作菜单

java - Java 中 JSON 数组字符串到 JSONArray 对象

c++ - 为什么 (rand() % anything) 在 C++ 中总是 0?

c++ - 访问动态二维字符数组 C++

javascript - 如何在 reactJS 中处理数组内的更改状态? (对 Select 元素使用 antd design)

javascript - 对象数组之间的区别

c++ - win32 c++ 中的停靠窗口

c++ - 使用 C++11 异步功能的管道数据流

c++ - 使用 C++ 读取整个文件,忽略误报的 EOF