String Exercises
In this code snippet, we will learn how to trim leading and trailing whitespaces using c program. For example if you enter string " Hello World! ", after trimming output string will be "Hello World!" Program will be removed leading and trailing whitespaces from the string.
Required knowledge
Basic C programming, C if-else, C for loop, Array, functions, Strings
Logic to remove leading white space
White space characters include blank space ' ', tab '\t', new line 'n'.
Below is the step by step descriptive logic to remove leading white space characters from string.
- Input string from user, store it in some variable say str.
- Declare a variable to store last index of leading white space character, say index = -1. Initially I have assumed that there are no leading white space characters. Hence, index is initialized to -1.
- Run a loop from start till leading white space characters are found in str. Store the last index of leading white space character in index.
- Check if index == -1, then the given string contains no leading white space characters.
- If index != -1, then shift characters to left from the current index position.
Program to trim leading white space
/** * C program to trim leading white space characters from a string */ #include <stdio.h> #define MAX_SIZE 100 // Maximum string size /* Function declaration */ void trimLeading(char * str); int main() { char str[MAX_SIZE]; /* Input string from user */ printf("Enter any string: "); gets(str); printf("\nString before trimming leading whitespace: \n%s", str); trimLeading(str); printf("\n\nString after trimming leading whitespace: \n%s", str); return 0; } /** * Remove leading whitespace characters from string */ void trimLeading(char * str) { int index, i, j; index = 0; /* Find last index of whitespace character */ while(str[index] == ' ' || str[index] == '\t' || str[index] == '\n') { index++; } if(index != 0) { /* Shit all trailing characters to its left */ i = 0; while(str[i + index] != '\0') { str[i] = str[i + index]; i++; } str[i] = '\0'; // Make sure that string is NULL terminated } }