Given a string we need to print the string with all possible combinations of the uppercase and lowercase characters in the string.
So given a string "abc", we need to print the following:
ABC
ABc
AbC
Abc
aBC
aBc
abC
abc
Solution is a simple recursive approach where we call the function again and again once with a character in lower case and another time with the same character in upper case. The code is similar to what we would write for all permutations of a string.
void lowerUpper(char *s, int start, int end)
{
if(start == end)
{
cout<<s<<endl;
return;
}
//Change next character to upper case
s[start] = toupper(s[start]);
lowerUpper(s,start+1,end);
//Change the same character as changed earlier to lower case
s[start] = tolower(s[start]);
lowerUpper(s,start+1,end);
}