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就不对了,为什么? 展开
#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就不对了,为什么? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询