如何解决用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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。