Site icon Study Algorithms

Write a program to change the case of each character in a string

Question: Write a program that changes the case of each character in a string. If its uppercase, convert it to lowercase and vice-versa.

Input: ThE quiCK brOwN FOX jUMPs.
Output: tHe QUIck BRoWn fox Jumps.

In this program we shall apply the basic principle that each character is represented as an integer ASCII code. For more reference look into the post – Find the case of a character input by the user.

Now we know that
‘a’ -> ASCII CODE = 97
‘A’ -> ASCII CODE = 65
Thus the difference is => 97 – 65 = 32

Algorithm for the program:-

Here is an implementation of the above algorithm:-

#include<stdio.h>

void changeCase(char *str)
{
	//scan the string till we enter NULL
	while(*str != '\0')
	{
		//if upper case, we add 32
		if(65<=*str && *str<=90)
			*str += 32;

		// if lower case, we subtract 32
		else if (97<=*str && *str<=122)
			*str -= 32;

		//we need to increment to reach the next character
		str++;
		//leave all other special symbols
	}
}

int main(void)
{
	char *s=(char *)malloc(sizeof(char)*100);

	//we use this statement so that spaces are scanned
	scanf("%[^\n]s",s);

	changeCase(s);

	printf("%s",s);
	return 0;
}
Exit mobile version