爱因斯坦日你妹
2015-11-19 01:08
采纳率: 25%
浏览 2.7k

c语言输入字符删除特定字符问题

输入一行字符,要求删去其中的某个字符后输出,要删除的字符由键盘输入。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • qq_31977683 2015-11-19 01:09

    #include
    #include
    void main()
    {
    char s[81];
    int i,n;
    printf("input a string:");
    gets(s);
    printf("input n:");
    scanf("%d",&n);
    for(i=n;i<strlen(s);i++)
    s[i]=s[i+1];
    printf("s=%s\n",s);
    }

    //运行情况:
    input a string:abcdefg
    input n:2
    s=abdefg
    请按任意键继续. . .

    打赏 评论
  • u014180504 2015-11-19 01:20

    #include"stdio.h"
    void main()
    {
    char s[81];
    char result[81];//定义一个数组保存结果
    int i,j=0;
    char n;
    printf("input a string:");
    gets(s);//输入原始字符串
    printf("input want to delete char:");
    scanf("%c",&n);//输入想要删除的字符
    for(i=0;i<strlen(s);i++)
    {
    if(s[i]==n)
    {

            }
            else
            {
                        result[j]=s[i];
                        j++;
            }
    

    }
    result[j]='\0';
    printf("s=%s\n",s);
    }

    
    
    打赏 评论
  • u014180504 2015-11-19 01:24

    格式有点问题,网页自动修改了格式,不好意思,代码没问题,希望对你有帮助,如果有疑问可以继续追问

    打赏 评论
  • u014180504 2015-11-19 01:24

    #include"stdio.h"
    void main()
    {
    char s[81];
    char result[81];//定义一个数组保存结果
    int i,j=0;
    char n;
    printf("input a string:");
    gets(s);//输入原始字符串
    printf("input want to delete char:");
    scanf("%c",&n);//输入想要删除的字符
    for(i=0;i<strlen(s);i++)
    {
    if(s[i]==n)
    {

    }
    else
    {
        result[j]=s[i];
        j++;
    }
    

    }
    result[j]='\0';
    printf("s=%s\n",s);
    }

    打赏 评论
  • #include
    #include
    void main()
    {
    char s[81];
    char c;
    int i,j;
    printf("input a string:");
    gets(s);
    printf("input a letter:");
    scanf("%c",&c);
    for(i=0;i<strlen(s);i++)
    {
    if(c == s[i])
    {
    for(j=i; j<strlen(s); j++)
    s[j]=s[j+1];
    break;

    }
    }
    printf("s=%s\n",s);
    }

    打赏 评论
  • wunaidepao 2015-11-19 01:45

    你看看ANSCII表,想清楚输入输出的过程。

    打赏 评论
  • Meditator_hkx 2015-11-19 01:49

    在if处有所失误,你难道不应该在判断该字符应删除后就把所有后面的字符移到前面覆盖前一个字符吗?

    打赏 评论
  • 一缕古香渡梦来 2020-08-06 21:20

    #include
    #include
    char *fun2(char *str,char a);
    int main()
    {
    char str[20],a; //定义一个字符串20的长度
    char *kp; //定义一个指针
    printf("请输入一个字符串:");
    gets(str);
    printf("请输入一个要删除的字符:");
    scanf("%c",&a);
    //getchar();
    kp=fun2(str,a); //指针指向fun2函数,接收返回值
    //puts(kp);
    printf("%s\n",kp); //输出地址上的内容 字符串
    return 0;
    }

    char fun2(char *str,char a) //aabbcd
    {
    int i,j=0;
    static char buf[20]; //没有static变量 局部变量运行完会释放掉内存空间,返回值就会为空,
    for(i=0;i<strlen(str);i++) //计算strlen函数有效长度
    {
    if(
    (str+i) != a)
    {
    buf[j++]= *(str+i);

    }
    }
    buf[j]='\0';

    return buf;
    }

    打赏 评论

相关推荐 更多相似问题