求大神解答,两个for循环的作用,str[i]!=0和 str[i]!='\0'的区别和用法

源程序:计算字符串长度
#include<sudio.h>
viod main()
{char str[ 80]; int i,len;
scanf("%s",str);
len=0;
for (i=0;str[i]!='\0';i++)
len++;
for (i=0;str[i]!=0;i++)
putchar(str[i]);
printf("strlenth=%d\n",len);
}

把NULL也放进来一起说说。
'\0'、0、NULL这三者的真值都是0,没有任何区别。之所以有三种写法,完全是为了程序的阅读:当用'\0'时表示是在操作一个字符串的结束符,比如ch!='\0';用NULL时常常是在将一个指针置为“空”指针,比如int *p=NULL;而0自然是数字0了,如int c=0。但写成int *p='\0'、int c=NULL和ch!=0都是能正确编译的。所以只是代码风格问题,没有实质区别。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-05
str[i]!=0和 str[i]!='\0'完全等价,没有区别,因为'\0'表示ASCII码为0的字符,即C语言的字符串结束符,数值上就是0。
相似回答