我尝试使用此方法,但输出与输入相同。用户输入要替换的字符以及要替换的字母。我不明白我在哪里出错。
#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] 删除。
我来说两句