从C中的字符串替换字符

法汉

我尝试使用此方法,但输出与输入相同。用户输入要替换的字符以及要替换的字母。我不明白我在哪里出错。

#include<stdio.h>

char* replaceChar(char *s, char x,char y)
{
    int i=0;
    while(s[i])
    {
        if(s[i]==x)
        {
            s[i]==y;
        }
        i++;
    }

    return s;

}

int main()
{
    char string[30];

    printf("Enter the string:\n");
    gets(string);
    fflush(stdin);
    char x;
    char y;
    printf("Enter the character you want to replace:\n");
    scanf("%c",&x);
    printf("Enter the character you want to replace with:\n");
    scanf(" ");
    scanf("%c",&y);

    printf("After replacing the string :\n");
    printf("%s",replaceChar(&string[0],x,y));


    return 0;
}
来自莫斯科的弗拉德

问题在于,您在此代码段中使用的是比较运算符,而不是赋值运算符

    if(s[i]==x)
    {
        s[i] == y;
    }

    if(s[i]==x)
    {
        s[i] = y;
    }

请注意,该功能gets不安全,C标准不再支持该功能而是使用功能fgets

也这个电话

fflush(stdin);

具有未定义的行为。去掉它。

并使用

scanf(" %c",&x);
      ^^^

scanf(" %c",&y);
      ^^^ 

代替

scanf("%c",&x);
scanf(" ");
scanf("%c",&y);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章