I wrote a program to replace a letter in a string. Although it has no error, the output is not as expected. Please help me with it.
#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#include<string.h>
void replace(char s,char d);
char a[100];
int main()
{
    char b,r;
    printf("enter the string\n:");
    gets(a);
    printf("enter the the letter to be replaced\n:");
    scanf("%c", &b);
    printf("enter the letter to be replaced with\n:");
    scanf("%c", &r);
    replace(b,r);
}
void replace(char s, char d)
{
    int i,f=0;
    for (i = 0; a[i] != '\0'; i++)
    {
        if (a[i] == s)
        {
            a[i] = d;
            f = 1;
        }
    }
    if (f == 0)
    {
        printf("letter not found");
    }
}
Output
enter the string
:hello every one
enter the the letter to be replaced 
:e
enter the letter to be replaced with
:letter not found
I wanted to replace e with o but I am not able to give the input for word to be replaced
UPDATE
Use this loop to get rid of the input buffer problem when using scanf
but I am not sure how to implement it on my program need help 
void
clear(void)
    {    
    while ( getchar() != '\n' )
        ;
    }
 
     
    