Do you know that? 93% are happier since started freelancing next

How can I remove the trailing spaces from a string?

The C language does not provide a standard function that removes trailing spaces from a string. It is easy,
however, to build your own function to do just this. The following program uses a custom function named
rtrim() to remove the trailing spaces from a string. It carries out this action by iterating through the string
backward, starting at the character before the terminating null character (\0) and ending when it finds the
first nonspace character. When the program finds a nonspace character, it sets the next character in the string
to the terminating null character (\0), thereby effectively eliminating all the trailing blanks. Here is how this
task is performed:

#include <stdio.h>
#include <string.h>
void main(void);
char* rtrim(char*);
void main(void)
{
     char* trail_str = "This string has trailing spaces in it.               ";
     /* Show the status of the string before calling the rtrim()
        function. */
     printf("Before calling rtrim(), trail_str is '%s'\n", trail_str);
     printf("and has a length of %d.\n", strlen(trail_str));
     /* Call the rtrim() function to remove the trailing blanks. */
     rtrim(trail_str);
     /* Show the status of the string
        after calling the rtrim() function. */
     printf("After calling rtrim(), trail_str is '%s'\n", trail_str);
     printf("and has a length of %d.\n", strlen(trail_str));
}
/* The rtrim() function removes trailing spaces from a string. */
char* rtrim(char* str)
{
int n = strlen(str) - 1;     /* Start at the character BEFORE
                                     the null character (\0). */
     while (n>0)            /* Make sure we don't go out of bounds... */
     {
          if (*(str+n) != ' ')    /*  If we find a nonspace character: */
          {
               *(str+n+1) = '\0'; /* Put the null character at one
                                     character past our current
                                     position. */
               break;             /* Break out of the loop. */
          }
          else      /* Otherwise, keep moving backward in the string. */
               n--;
     }
     return str;                  /* Return a pointer to the string. */
}

Notice that the rtrim() function works because in C, strings are terminated by the null character. With the
insertion of a null character after the last nonspace character, the string is considered terminated at that point,
and all characters beyond the null character are ignored.