编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按 不同字符处理。

2024-12-14 07:05:59
推荐回答(2个)
回答1:

#include
#include
int main()
{
int jian(char *,char); //申明一个自定义函数
char s[30],c='k'; //申明一个容量为30的字符数组,申明字符变量c并初始化为k
printf("Input the string:\n"); //输出input the string
gets(s); //读取用户输入的字符串并存入字符数组s
printf("Input the string:\n"); //输出input the string
c=getchar(); //读取用户输入的字符,赋值于变量c
if(jian(s,c)) //如果函数jian(s,c)返回的为真,则运行下面
printf("%s\n",s); //打印字符数组s
else //如果函数jian(s,c)返回的为假,则运行下面
printf("RUN ERROR!\n"); //打印RUN ERROR
return 1; //结束程序
}
/*实现删除字符的功能函数*/
int jian(char *n,char m) //构建jian函数
{
int i=0; //申明整型变量i并初始化为0
while(n[i]) //当n为真,则实现循环
{
if(n[i]==m) //如果n[i]等于m,则
strcpy(&n[i],&n[i+1]),i--; /*查找目标字符,并将其删除*/
i++;
}
return 1; 返回真
}

回答2:

int jian(char *n,char m)
{
int i=0;
while(n[i])
{
if(n[i]==m)
strcpy(&n[i],&n[i+1]),i--; //这一句的意思即是:如果n[i] 就是要删除的字符, 将
i++; //数组 n 里面的数据依次前移一位, 即把n[i+1] 覆盖掉 要删除
} //的字符 n[i], 然后 i-- 以确保下次 i 还是指向 n[i],因为现在的
return 1; //n[i]是先前的n[i+1]
}