# Convert characters of a string to opposite case

• Difficulty Level : Easy
• Last Updated : 03 Jun, 2021

Given a string, convert the characters of the string into opposite case,i.e. if a character is lower case then convert it into upper case and vice-versa.

Examples:

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

```Input : geeksForgEeks
Output : GEEKSfORGeEKS

Input : hello every one
Output : HELLO EVERY ONE```

ASCII values  of alphabets: A – Z = 65 to 90, a – z = 97 to 122
Steps:

1. Take one string of any length and calculate its length.
2. Scan string character by character and keep checking the index.
• If a character in an index is in lower case, then subtract 32 to convert it in upper case, else add 32 to convert it in lower case
3. Print the final string.

## C++

 `// CPP program to Convert characters``// of a string to opposite case``#include ``using` `namespace` `std;` `// Function to convert characters``// of a string to opposite case``void` `convertOpposite(string& str)``{``    ``int` `ln = str.length();` `    ``// Conversion according to ASCII values``    ``for` `(``int` `i = 0; i < ln; i++) {``        ``if` `(str[i] >= ``'a'` `&& str[i] <= ``'z'``)``            ``// Convert lowercase to uppercase``            ``str[i] = str[i] - 32;``        ``else` `if` `(str[i] >= ``'A'` `&& str[i] <= ``'Z'``)``            ``// Convert uppercase to lowercase``            ``str[i] = str[i] + 32;``    ``}``}` `// Driver function``int` `main()``{``    ``string str = ``"GeEkSfOrGeEkS"``;` `    ``// Calling the Function``    ``convertOpposite(str);` `    ``cout << str;``    ``return` `0;``}`

## Java

 `// Java program to Convert characters``// of a string to opposite case``class` `Test {` `    ``// Method to convert characters``    ``// of a string to opposite case``    ``static` `void` `convertOpposite(StringBuffer str)``    ``{``        ``int` `ln = str.length();` `        ``// Conversion using predefined methods``        ``for` `(``int` `i = ``0``; i < ln; i++) {``            ``Character c = str.charAt(i);``            ``if` `(Character.isLowerCase(c))``                ``str.replace(i, i + ``1``,``                            ``Character.toUpperCase(c) + ``""``);``            ``else``                ``str.replace(i, i + ``1``,``                            ``Character.toLowerCase(c) + ``""``);``        ``}``    ``}` `    ``public` `static` `void` `main(String[] args)``    ``{``        ``StringBuffer str``            ``= ``new` `StringBuffer(``"GeEkSfOrGeEkS"``);``        ``// Calling the Method``        ``convertOpposite(str);` `        ``System.out.println(str);``    ``}``}``// This code is contributed by Gaurav Miglani`

## Python3

 `# Python3 program to Convert characters``# of a string to opposite case` `# Function to convert characters``# of a string to opposite case``def` `convertOpposite(``str``):``    ``ln ``=` `len``(``str``)` `    ``# Conversion according to ASCII values``    ``for` `i ``in` `range``(ln):``        ``if` `str``[i] >``=` `'a'` `and` `str``[i] <``=` `'z'``:` `            ``# Convert lowercase to uppercase``            ``str``[i] ``=` `chr``(``ord``(``str``[i]) ``-` `32``)` `        ``elif` `str``[i] >``=` `'A'` `and` `str``[i] <``=` `'Z'``:` `            ``# Convert lowercase to uppercase``            ``str``[i] ``=` `chr``(``ord``(``str``[i]) ``+` `32``)` `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ``str` `=` `"GeEkSfOrGeEkS"``    ``str` `=` `list``(``str``)` `    ``# Calling the Function``    ``convertOpposite(``str``)` `    ``str` `=` `''.join(``str``)``    ``print``(``str``)` `# This code is contributed by``# sanjeev2552`

## C#

 `// C# program to Convert characters``// of a string to opposite case``using` `System;``using` `System.Text;` `class` `GFG{``    ` `    ``// Method to convert characters``    ``// of a string to opposite case``    ``static` `void` `convertOpposite(StringBuilder str)``    ``{``        ``int` `ln = str.Length;``            ` `        ``// Conversion according to ASCII values``        ``for` `(``int` `i=0; i=``'a'` `&& str[i]<=``'z'``)``            ` `                ``//Convert lowercase to uppercase``                ``str[i] = (``char``)(str[i] - 32);``                ` `            ``else` `if``(str[i]>=``'A'` `&& str[i]<=``'Z'``)``            ` `                ``//Convert uppercase to lowercase``                ``str[i] = (``char``)(str[i] + 32);``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``StringBuilder str = ``new` `StringBuilder(``"GeEkSfOrGeEkS"``);``        ``// Calling the Method``        ``convertOpposite(str);``        ``Console.WriteLine(str);``        ``}``}``// This code is contributed by PrinciRaj1992`

## Javascript

 ``
Output
`gEeKsFoRgEeKs`

Time Complexity: O(n)
Note: This program can alternatively be done using C++ inbuilt functions – Character.toLowerCase(char) and Character.toUpperCase(char).

Approach 2: The problem can be solved using letter case toggling. Follow the below steps to solve the problem:

• Traverse the given string S.
• For each character Si, do Si =  Si ^ (1 << 5).
• Si ^ (1 << 5) toggles the 5th bit which means 97 will become 65 and 65 will become 97:
• 65 ^ 32 = 97
• 97 ^ 32 = 65
• Print the string after all operations

Below is the implementation of the above approach:

## C++

 `// C++ program to toggle all characters``#include``using` `namespace` `std;`` ` `// Function to toggle characters``void` `toggleChars(string &S)``{``    ``for``(``auto` `&it : S){``       ``if``(``isalpha``(it)){``         ``it ^= (1 << 5);``       ``}``    ``}``}`` ` `// Driver code``int` `main()``{``    ``string S = ``"GeKf@rGeek\$"``;``    ``toggleChars(S);``    ``cout << ``"String after toggle "` `<< endl;``    ``cout << S << endl;``    ``return` `0;``}` `//Code contributed by koulick_sadhu`

## Java

 `// Java program to toggle all characters``import` `java.util.*;` `class` `GFG{``    ` `static` `char` `[]S = ``"GeKf@rGeek\$"``.toCharArray();` `// Function to toggle characters``static` `void` `toggleChars()``{``    ``for``(``int` `i = ``0``; i < S.length; i++)``    ``{``        ``if` `(Character.isAlphabetic(S[i]))``        ``{``            ``S[i] ^= (``1` `<< ``5``);``        ``}``    ``}``}`` ` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``toggleChars();``    ``System.out.print(``"String after toggle "` `+ ``"\n"``);``    ``System.out.print(String.valueOf(S));``}``}` `// This code is contributed by Amit Katiyar`

## C#

 `// C# program to toggle all characters``using` `System;` `class` `GFG{``    ` `static` `char` `[]S = ``"GeKf@rGeek\$"``.ToCharArray();` `// Function to toggle characters``static` `void` `toggleChars()``{``    ``for``(``int` `i = 0; i < S.Length; i++)``    ``{``        ``if` `(``char``.IsLetter(S[i]))``        ``{``            ``S[i] = (``char``)((``int``)(S[i]) ^ (1 << 5));``        ``}``    ``}``}`` ` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``toggleChars();``    ``Console.Write(``"String after toggle "` `+ ``"\n"``);``    ``Console.Write(String.Join(``""``, S));``}``}` `// This code is contributed by Princi Singh`

This article is contributed by Rishabh Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.