Remove spaces from a string in C
Understanding String Manipulation
Removing spaces from a string means eliminating all whitespace characters.
We will explore three different methods to achieve this in C.
Method 1: Using a Loop
This method iterates through the string and copies only non-space characters.
#include <stdio.h> #include <string.h> void removeSpaces(char *str) { int count = 0; for (int i = 0; str[i]; i++) if (str[i] != ' ') str[count++] = str[i]; str[count] = '\0'; } int main() { char str[] = "Hello World!"; removeSpaces(str); printf("Filtered String: %s", str); return 0; }
Output: HelloWorld!
Method 2: Using Recursion
This method removes spaces recursively.
#include <stdio.h> void removeSpacesRecursive(char *str, int index, int count) { if (str[index] == '\0') { str[count] = '\0'; return; } if (str[index] != ' ') str[count++] = str[index]; removeSpacesRecursive(str, index + 1, count); } int main() { char str[] = "C programming"; removeSpacesRecursive(str, 0, 0); printf("Filtered String: %s", str); return 0; }
Output: Cprogramming
Method 3: Using Pointers
This method uses pointers to remove spaces efficiently.
#include <stdio.h> void removeSpacesPointer(char *str) { char *i = str, *j = str; while (*i) { if (*i != ' ') *j++ = *i; i++; } *j = '\0'; } int main() { char str[] = "Remove spaces"; removeSpacesPointer(str); printf("Filtered String: %s", str); return 0; }
Output: Removespaces