簡體   English   中英

從 C 中的字符串替換字符

[英]Replacing a character from a string in C

我嘗試了這種方法,但 output 仍然與輸入相同。 用戶輸入他想要替換的字符以及他想要替換的字母。 我不明白我在哪里 go 錯了。

#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;
    }

請注意,function gets的是不安全的,並且不再受 C 標准支持。 而是使用 function fgets

還有這個電話

fflush(stdin);

具有未定義的行為。 去掉它。

並使用

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

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

代替

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM