C program to swap adjacent characters of a String

Given a string str, the task is to swap adjacent characters of this string in C.

Examples:

Input: str = "geeks"
Output: NA
Not possible as the string length is odd

Input: str = "geeks"
Output: egek

Approach:



  1. Check if the length of the string is even or odd.
  2. If the length is even, swapping cannot be done.
  3. If the length is odd, take each character of the string one by one and swap it with the adjacent character.

Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to swap
// adjacent characters of a String
  
#include <stdio.h>
#include <string.h>
  
// Function to swap adjacent characters
void swap(char* str)
{
  
    char c = 0;
    int length = 0, i = 0;
  
    // Find the length of the string
    length = strlen(str);
  
    // Check if the length of the string
    // is even or odd
    if (length % 2 == 0) {
  
        // swap the characters with
        // the adjacent character
        for (i = 0; i < length; i += 2) {
            c = str[i];
            str[i] = str[i + 1];
            str[i + 1] = c;
        }
  
        // Print the swapped character string
        printf("%s\n", str);
    }
    else {
  
        // Print NA as the string length is odd
        printf("NA\n");
    }
}
  
// Driver code
int main()
{
  
    // Get the string
    char str1[] = "Geek";
    char str2[] = "Geeks";
  
    swap(str1);
    swap(str2);
  
    return 0;
}

chevron_right


Output:

eGke
NA


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.