【发布时间】:2021-04-24 23:00:41
【问题描述】:
我尝试了这种方法,但输出与输入相同。用户输入他想要替换的字符以及他想要替换的字母。我不明白我哪里出错了。
#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;
}
【问题讨论】:
-
"%c"-->" %c" -
将双精度改为单精度:s[i]=y
-
谢谢我应该使用 fgets() 而不是在这里获取吗?
-
是的,使用
fgets()。请注意,它会将\n留在结果字符串中,而gets()不会。
标签: c replace char c-strings function-definition