重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有崂山免费网站建设让你可以放心的选择与我们合作。
#includestring.h
#define MAX 80
void delechar(char str[],char a)
{
int i=0,j;
while(str[i]!='\0')
{
if(str[i]==a)
{
for(j=i;str[j]!=0;j++)
{
str[j]=str[j+1];
}
}
i++;
}
}
int main(void)
{
int i;
char a,str[MAX];
gets(str);
scanf("%c",a);
delechar(str,a);
puts(str);
return 0;
}
把你注释//删除第一个节点的那一句改为:
if(!pre)head=p-next;
应该就好了。
如果还不行请留言。
s[i]'0' || s[i]'9'的意思是s[i]这个字符不是'0'~'9'之内的字符,即非数字字符。
你这个dele函数的意思是剔除字符串里的数字字符,那么判断为非数字字符时,把s[i]放入s[n]。
字符’\0'是字符串结束符,有了它才能用printf的%s来输出这个字符串的有效内容,’\0'的ascii码值就是0,所以s[n]=0等同于s[n]='\0'。
isdigit判断一个字符是不是数字字符,逻辑就是你上面问的s[i]='0's[i]='9'。那么if(!isdigit(s[i]))的意思是如果s[i]不是数字字符的意思,等同于if(s[i]'0' || s[i]'9')