w3resource

C Programming: Replace the spaces of a string with a specific character

C String: Exercise-25 with Solution

Write a program in C to replace the spaces of a string with a specific character.

C Programming: Replace the spaces of a string with a specific character

Sample Solution:

C Code:

#include<stdio.h>
#include<ctype.h>

int main()
{
	int new_char;
	char t;
	int ctr=0;
	char str[100]; 
	printf("\n Replace the spaces of a string with a specific character :\n");  
    printf("-------------------------------------------------------------\n");      
    printf(" Input a string : ");
	fgets(str, sizeof str, stdin); 
    printf(" Input replace character : ");
	scanf("%c",&t);
	printf(" After replacing the space with  %c the new string is :\n",t);
	while (str[ctr])
	{
		new_char=str[ctr];
		if (isspace(new_char)) 
		new_char=t;
		putchar (new_char);
		ctr++;
	}
	printf("\n\n");
	return 0;
}

Sample Output:

 Replace the spaces of a string with a specific character :
-------------------------------------------------------------
 Input a string : Be glad to see the back of
 Input replace character : *
 After replacing the space with  * the new string is :
 Be*glad*to*see*the*back*of*

Flowchart :

Flowchart: Replace the spaces of a string with a specific character

C Programming Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a program in C to check whether a letter is uppercase or not.
Next: Write a program in C to count the number of punctuation characters exists in a string.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

Is there a way to specify how many characters of a string to print out using printf()?

The basic way is:

printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars"); 

The other, often more useful, way is:

printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars"); 

Here, you specify the length as an int argument to printf(), which treats the '*' in the format as a request to get the length from an argument.

You can also use the notation:

printf ("Here are the first 8 chars: %*.*s\n",
        8, 8, "A string that is more than 8 chars"); 

This is also analogous to the "%8.8s" notation, but again allows you to specify the minimum and maximum lengths at runtime - more realistically in a scenario like:

printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info); 

The POSIX specification for printf() defines these mechanisms.

Ref: https://bit.ly/395Zj2j