/* * ce -- center text * $ cc -O2 -o ce ce.c */ #include #include #include #include #include #define MAXBUF 255 int main(int argc, char *argv[]) { char *buf; int cols, i, max; if(argc-1 > 1){ fprintf(stderr, "usage: %s [cols]\n", argv[0]); return 1; } cols = argv[1] ? atoi(argv[1]) : 80; if(!(buf = malloc(MAXBUF))) err(1, "malloc"); while(fgets(buf, MAXBUF, stdin)){ buf[strcspn(buf, "\n")] = 0; /* Remove leading and trailing whitespace. */ for (; *buf; buf++) if(!isspace(*buf)) break; for (i = strlen(buf)-1; i >= 0; i--) if(!isspace(buf[i])) break; buf[i+1] = 0; /* Calculate number of spaces. */ max = cols/2 + strlen(buf)/2; printf("%*s\n", max, buf); } }