H.Sean.N 2023-04-06 13:58 采纳率: 40%
浏览 23
已结题

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

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

  • 写回答

3条回答 默认 最新

  • a5156520 2023-04-06 14:08
    关注

    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

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月6日
  • 修改了问题 4月6日
  • 创建了问题 4月6日