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:
- Check if the length of the string is even or odd.
- If the length is odd, swapping cannot be done.
- 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)