关于#c语言#的问题:函数f1中代码运行有问题

函数f1中代码运行有问题

//3.输入一个字符串,编写函数,实现找到字符串中的字符’a’并用’#’替代
#include"stdio.h"
#include"string.h"
int f1(char buf[]);
int main(void)
{
    char str[100]={'\0'};
    printf("请输入一个字符串:");
    scanf("%s",str);
    f1(str);
    return 0;
}
int f1(char buf[])
{
    int i=0,len=0;
    char ch='\0';
    printf("要找出哪个字符:");
    scanf("%c",&ch);
    len=strlen(buf);
    for(i=0;i<len;i++)
    {
        if(buf[i]==ch)
          buf[i]='#';
    }
    printf("%s\n",buf);
    return 0;
}

img

在18行下面加一行 getchar()
然后运行,在它打印出:要找出哪个字符: 后,你应该立刻输入要找出的字符,比如j 然后回车

#include<stdio.h>
#include<string.h>
int f1(char buf[]);
int main(void)
{
    char str[100]={'\0'};
    printf("请输入一个字符串:");
    gets(str);
    f1(str);
    return 0;
}
int f1(char buf[])
{
    int i=0,len=0;
    char ch='\0';
    printf("要找出哪个字符:");
    scanf("%c",&ch);
    len=strlen(buf);
    for(i=0;i<len;i++)
    {
        if(buf[i]==ch)
          buf[i]='#';
    }
    printf("%s",buf);
    return 0;
}

img