Here's a question where we need to replace all occurences of a character in a string with another new string. Given below is the question:
Write a program that replaces the occurence of a given character (say c) in a primary string (say PS) with another string (say s).
Input: The first line contains the primary string (PS) The next line contains a character (c) The next line contains a string (s)
Output: Print the string PS with every occurence of c replaced by s.
NOTE: - There are no whitespaces in PS or s. - Maximum length of PS is 100. - Maximum length of s is 10.
Below is my code:
#include<stdio.h>
int main()
{
    char ps[100],*ptr,c,s[10];
    printf("Enter any string:");
    gets(ps);
    printf("Enter the character you want to replace:");
    scanf("%c",&c);
    printf("Enter the new string:");
    fflush(stdin);
    scanf("%s",&s);
    ptr=ps;
    while(*ptr!='\0')
    {
        if(*ptr==c)
        *ptr=s;
        ptr++;
    }
    printf("Final string is:");
    puts(ps);
    return 0;
}
I am not able to replace a character with a string. It just gives me a garbage output in place of the character that I want to replace.
But, when I declare it as a character, the output is as expected. It replaces the character with another character.
Could you please help me with this?
 
     
     
    