#include #define MAXLINE 10 int _getline(char line[], int maxline); void trim(char to[], char from[], int from_head); // remove all extra spaces and tabs from tail of input main() { char line[MAXLINE]; char trimmed[MAXLINE]; int head = _getline(line, MAXLINE); trim(trimmed, line, head); printf("[%s]\n", trimmed); return 0; } int _getline(char s[], int lim) { int c, i, j; for (i = 0; (c = getchar()) != '\n'; ++i) { if (i < lim - 1) s[i] = c; } j = i; if (j > lim - 1) j = lim - 1; s[j] = '\0'; return j; } void trim(char to[], char from[], int from_head) { int i; int start_copying = 0; for (i = from_head - 1; i >= 0; --i) { if (start_copying == 0 && from[i] != '\t' && from[i] != ' ') { to[i+1] = '\0'; start_copying = 1; } if (start_copying == 1) to[i] = from[i]; } }