#include <string.h>
#include <stdio.h>
char *trim(char *text) {
char *start = text; // points to the first character
char *end
= text
+ strlen(text
); // points past the last character
// Let's start with the left side.
// Move the pointer as long as there's a whitespace
// In a similar way, let's get the right end.
// Again, move the pointer as long as there's a whitespace
for (;end
> start
&& isspace(end
[-1]); --end
);
// Insert the new terminator
*end = '\0';
// Return the new starting offset
return start;
}
int main(int argc, char **argv) {
char string[] = " \t Hello World\t\t\n";
printf("result: '%s'\n", trim
(string
)); return 0;
}
I2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCmNoYXIgKnRyaW0oY2hhciAqdGV4dCkgewogICAgY2hhciAqc3RhcnQgPSB0ZXh0OyAvLyBwb2ludHMgdG8gdGhlIGZpcnN0IGNoYXJhY3RlcgogICAgY2hhciAqZW5kID0gdGV4dCArIHN0cmxlbih0ZXh0KTsgLy8gcG9pbnRzIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyCiAgICAKICAgIC8vIExldCdzIHN0YXJ0IHdpdGggdGhlIGxlZnQgc2lkZS4KICAgIC8vIE1vdmUgdGhlIHBvaW50ZXIgYXMgbG9uZyBhcyB0aGVyZSdzIGEgd2hpdGVzcGFjZQogICAgZm9yICg7IGlzc3BhY2UoKnN0YXJ0KTsgKytzdGFydCk7CgogICAgLy8gSW4gYSBzaW1pbGFyIHdheSwgbGV0J3MgZ2V0IHRoZSByaWdodCBlbmQuCiAgICAvLyBBZ2FpbiwgbW92ZSB0aGUgcG9pbnRlciBhcyBsb25nIGFzIHRoZXJlJ3MgYSB3aGl0ZXNwYWNlCiAgICBmb3IgKDtlbmQgPiBzdGFydCAmJiBpc3NwYWNlKGVuZFstMV0pOyAtLWVuZCk7CgogICAgLy8gSW5zZXJ0IHRoZSBuZXcgdGVybWluYXRvcgogICAgKmVuZCA9ICdcMCc7CgogICAgLy8gUmV0dXJuIHRoZSBuZXcgc3RhcnRpbmcgb2Zmc2V0CiAgICByZXR1cm4gc3RhcnQ7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgY2hhciBzdHJpbmdbXSA9ICIgIFx0ICBIZWxsbyBXb3JsZFx0XHRcbiI7CiAgICBwcmludGYoInJlc3VsdDogJyVzJ1xuIiwgdHJpbShzdHJpbmcpKTsKICAgIHJldHVybiAwOwp9Cg==