Toggle each character in a string in C

Understanding Character Toggling

Character toggling means converting uppercase letters to lowercase and vice versa.

We will explore three different methods to toggle characters in a string using C.

Method 1: Using a Loop

This method iterates through the string and toggles each character.

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

void toggle_case(char *str) {
    for (int i = 0; str[i] != '\0'; i++) {
        if (islower(str[i]))
            str[i] = toupper(str[i]);
        else if (isupper(str[i]))
            str[i] = tolower(str[i]);
    }
}

int main() {
    char str[100];
    printf("Enter a string: ");
    gets(str);
    toggle_case(str);
    printf("Toggled string: %s\n", str);
    return 0;
}
            
Input: HelloWorld
Output: hELLOwORLD

Method 2: Using Recursion

This method toggles characters recursively.

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


void toggle_recursive(char *str, int index) {
    if (str[index] == '\0') return;
    if (islower(str[index]))
        str[index] = toupper(str[index]);
    else if (isupper(str[index]))
        str[index] = tolower(str[index]);
    toggle_recursive(str, index + 1);
}

int main() {
    char str[100];
    printf("Enter a string: ");
    gets(str);
    toggle_recursive(str, 0);
    printf("Toggled string: %s\n", str);
    return 0;
}
            
Input: Programming
Output: pROGRAMMING

Method 3: Using Bitwise Operations

This method toggles characters using bitwise XOR operation.

#include <stdio.h>

void toggle_bitwise(char *str) {
    for (int i = 0; str[i] != '\0'; i++) {
        str[i] ^= 32;
    }
}

int main() {
    char str[100];
    printf("Enter a string: ");
    gets(str);
    toggle_bitwise(str);
    printf("Toggled string: %s\n", str);
    return 0;
}
            
Input: ToggleCase
Output: tOGGLEcASE
Strings

Below You will find some of the most important codes in languages like C, C++, Java, and Python. These codes are of prime importance for college semester exams and online tests.

Getting Started

Check whether a character is a vowel or consonant: C C++ Java Python

Check whether a character is an alphabet or not: C C++ Java Python

Find the ASCII value of a character: C C++ Java Python

Length of the string without using strlen() function: C C++ Java Python

Toggle each character in a string: C C++ Java Python

Count the number of vowels: C C++ Java Python

Remove the vowels from a string: C C++ Java Python

Check if the given string is Palindrome or not: C C++ Java Python

Print the given string in reverse order: C C++ Java Python

Remove all characters from string except alphabets: C C++ Java Python

Remove spaces from a string: C C++ Java Python

Replace a sub-string in a string: C C++ Java Python

Count common sub-sequences in two strings: C C++ Java Python

Compare two strings with wildcard support in one of them: C C++ Java Python

List all permutations of a given string in dictionary order: C C++ Java Python

Operations on Strings: C C++ Java Python