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