c++,系统将\0和00划等号了,怎么区分

if (str[c]=='\0')//想让字符串结尾的时候执行
//可str==0102001388时,到了00就执行了。查了一下说是‘\0’在电脑中用电脑语言所代表的数值和0是相同的,这个怎么能区分?应该改成什么才好?我试了一下0\0也不行(偶尔能执行成功,但也会断掉)。

str数组是字符数组吗,如果它初始赋值为"0102001388", 使用str[c]=='\0' 作为判断结尾,应该是可以正常判断到的。

测试代码如下:


#include <iostream>
using namespace std;

int main(void){
    
    char str[100]="0102001388";
    
    
    int i=0;
    while(str[i]!='\0'){
        i++;
    }
    
    cout<<str<<endl;
    cout<<"i="<<i<<endl;
    
    return 0;
} 

img

'\0'的值为0,注意与字符‘0’是有区别的。如果要判断字符0应该是str[i]=='0';

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^