Open In App

C program to swap adjacent characters of a String

Improve
Improve
Like Article
Like
Save
Share
Report

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 = "geek"
Output: egke

Approach:

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

Below is the implementation of the above approach: 

C




// 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;
}


Output:

eGke
NA

Time complexity: O(length(str))

Auxiliary space: O(1)



Last Updated : 09 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads