[英]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.