使用'\ 0'作为比较操作数

luc*_*cau 1 c++ arrays

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

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

但该计划并不止于此.它会创建一些随机符号.

例如char number [] ="0123"
该程序给出:0123§&

我的if条件出了什么问题?

Aru*_*A S 5

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

尝试更改for循环条件

for(int i=0; word[i] != '\0'; i++){
    cout<< word[i];
}
Run Code Online (Sandbox Code Playgroud)

如果你只是想打印它,简单

cout<<word;
Run Code Online (Sandbox Code Playgroud)

本来就足够了