fork download
  1. #include <stdio.h>
  2.  
  3. char *strtrim(const char *input) {
  4. while(*input==' ') {
  5. input++;
  6. }
  7. const char *start=input;
  8. const char *end=input;
  9. while(*input) {
  10. if(*input!=' ') {
  11. end=input+1;
  12. }
  13. input++;
  14. }
  15. size_t len=end-start;
  16. char *result=malloc(len+1);
  17. if(result) {
  18. result[len]=0;
  19. memcpy(result,start,len);
  20. }
  21. return result;
  22. }
  23.  
  24. void test(const char *input) {
  25. char *work=strtrim(input);
  26. printf("*%s* -> *%s*\n",input,work?work:"fail");
  27. free(work);
  28. }
  29.  
  30. int main(void) {
  31. test("test");
  32. test(" test");
  33. test(" test");
  34. test("test ");
  35. test("test ");
  36. test(" te st ");
  37. test("t");
  38. test(" t");
  39. test("t ");
  40. test(" ");
  41. test("");
  42. return 0;
  43. }
  44.  
Success #stdin #stdout 0s 5360KB
stdin
Standard input is empty
stdout
*test* -> *test*
* test* -> *test*
*  test* -> *test*
*test * -> *test*
*test  * -> *test*
*  te st  * -> *te st*
*t* -> *t*
* t* -> *t*
*t * -> *t*
*  * -> **
** -> **