急急急!!C语言的0和'\0'

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:02:30
有程序:
void fun(char *s)
{ int i, j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j++]=s[i];
s[j]=0;
}
程序很简单,是删除s里所有的c,现在有个问题,就是最后一句s[j]=0,我如果写成s[j]='\0'可以吗?不是应该在字符串最后加上一个'\0'吗?如果不能这样写又是为什么?

这样写也可以的

原因是:
写成s[j]='\0',是直接将字符'\0'赋给字符量s[j],而字符'\0'就是字符串的默认串尾符
写成s[j]=0,是直接将ASCII码值0赋给字符量s[j],而ASCII码值0对应的字符就是'\0'

所以是一样的

0和'\0'的值大小相同,不过表示的意思不同,0是整形,而'\0'特指字符串的结尾。

0 的意思 是代表一个字符

\0 的意思是在数组中表示结束符
当编译器遇到\0时就会结束对数组中此元素后面的元素调用

当然可以阿。

不可以,在计算机中一切字符和数字都是以ASCII码进行存储的,0和\0在计算机中是不一样的,它们的ASCII不一样,所以不可以混淆。

最好就写反斜杠0罗~~因为尽管它的值是0,但是一般都是写反斜杠0比较好,因为它作为字符串结束标志··