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

#include<stdio.h>
#include<string.h>
int fun(char a[],char c)
{int i,j,t;
t=strlen(a);
for(i=0;i<t;i++)
{
if(a[i]==c)
for(j=i;j<t;j++)
a[j]=a[j+1];
}
return a;
}
int main()
{
char str[80];
char ch;
gets(str);
scanf("%c",&ch);
fun(str,ch);
printf("%s\n",str);
return 0;
}

这个中的aaaaaaadsd a 输出的不对啊。。。求大神解答

#include<stdio.h>

#include<string.h>

int fun(char a[],char c)

int i,j,t;

for(i=0;i<strlen(a);)  

if(a[i]==c)

{

for(j=i;j<=strlen(a);j++)

a[j]=a[j+1];

continue;

++i;  //只有当是字符c的时候i才能自加,如果是则i保持不变。

scanf("%s",&ch);    //这里建议用%s,可以忽略后面的回车。

fun(str,ch);

printf("%s\n",str);

return 0;

}

扩展资料:

C/C++语言中,fun函数通常被主函数所调用。它是指用fun来定义一个函数(或方法),这样在引用时可以用fun表示。比如int fun(int x,int y),void fun(char* a,char* b) 等等。有先前的定义,就可以在主函数里调用它,比如ans=fun(3,7)或者fun(p1,p2);。

参考资料来源:百度百科-fun函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
#include<stdio.h>
#include<string.h>
int fun(char a[],char c)
{
    int i,j,t;
    for(i=0;i<strlen(a);)    //原程序i++,则有一部分无法替换。而且strlen(a)也并非定值。
    {
        if(a[i]==c)
        {
            for(j=i;j<=strlen(a);j++)
                a[j]=a[j+1];
            continue;
        }
        ++i;    //只有当是字符c的时候i才能自加,如果是则i保持不变。
    }
    return 0;
}
int main()
{
    char str[80];
    char ch;
    gets(str);
    scanf("%s",&ch);    //这里建议用%s,可以忽略后面的回车。
    fun(str,ch);
    printf("%s\n",str);
    return 0;
}

本回答被提问者采纳
第2个回答  2020-04-12

不知道楼主问题是否解决,我最近也在学习这部分知识,遇到了这道题,这是我的代码,希望能帮助到大家。如果有错,还望大家指出并海涵。

相似回答