c语言中字符数组结束标志为0和'\0'有区别么? 5

#include<stdio.h>#include<ctype.h>#defineN100voidfun(char*s);intmain(){chars[N];print... #include<stdio.h>
#include<ctype.h>
#define N 100
void fun(char *s);
int main()
{
char s[N];
printf("输入字符串(只有字母和*号):\n");
gets(s);
fun(s);
printf("去除中间*号后为:\n");
puts(s);
return 0;
}
void fun(char *s)
{
char *p;
while(*s=='*')
s++;
for(;*s!='\0';s++)//****
{
if(*s=='*'&&isalpha(*(s+1)))
{
for(p=s;*p!='\0';p++) //****
*p=*(p+1);
s=s-2;
}
}
}

将****位置的'\0'都换成0就不对了,为什么?
展开
 我来答
lingsmm
2017-12-06 · TA获得超过1192个赞
知道小有建树答主
回答量:726
采纳率:90%
帮助的人:220万
展开全部
'\0' 对应的二进制字节是: 00000000
'0' 对应的二进制字节是:00110000
这就是为什么。因为这完全是两码事,不同的东西。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式