发布网友 发布时间:2022-04-20 17:13
共1个回答
热心网友 时间:2022-04-17 23:07
//在你的原程序上修改,注意加注释的地方
#include<stdio.h>
#include<string.h> //这个头文件可以不用了
void deletechar(char *s,char c) //delete是保留字,改名为deletechar
{int i,j;
for(i=0;s[i]!='\0';)
{if(s[i]==c) //只是两个字符的比较,不需要strcmp函数
for(j=i;s[j]!='\0';j++)
s[j]=s[j+1];
else i++; }
return;}
int main()
{char s[80];
char c;
gets(s);
//getchar() //这个不需要字符缓冲
c=getchar();
deletechar(s,c); //delete是保留字,改名为deletechar
puts(s);}追问if((strupr(s[i])==c)||(strlwr(s[i])==c))
为了满足删除时不区分大小写这个要求,我把 deletechar中的if改成了这样,怎么又停止工作了额
追答strupr和strlwr函数其内的参数都是指针,不能用在这个场合,
你也可以考虑自己重新定义这两个函数,如
char strupr(char c){
if (c>='a' && c='A' && c<='Z') return c+32;
return c;
}