2
我有这个程序要求用户输入字符串和两个字符。一个字符将被替换,另一个字符将替换旧字符。我调用一个名为replace()
的函数,该函数遍历字符串,查找旧字符并用新字符替换它。它在main()
中打印新字符串,但它不起作用。我做错了什么?代码无法正确替换字符串中的一个字符与另一个
#include <stdio.h>
#include <string.h>
void replace(char string[], char old, char new);
int main()
{
char input[100], newChar, oldChar;
char newstr[100];
printf("Enter a string: ");
fgets(input, 100, stdin);
printf("Enter a character to replace: ");
scanf("%c", &oldChar);
printf("Replace character with?: ");
scanf("%c", &newChar);
getchar();
replace(input, oldChar, newChar);
printf("Result: %s\n", input);
}
void replace(char string[], char old, char new)
{
int length = strlen(string);
int i = 0;
for(i=0; i<length; i++)
{
if(string[i] == old)
{
string[i] = new;
}
}
}
'的scanf( “%C”,与oldChar);' - >'的scanf( “%C”,与oldChar); getchar();' – BLUEPIXY
Wooaahh。试过了。有效。谢谢:D – fixotherm
或'scanf(“%c”,&newChar);' - >'scanf(“%c”,&newChar);'。 –