Skip to main content
added 25 characters in body
Source Link
AlfaZulu
  • 931
  • 5
  • 13

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } size_t len = strlen(firstNonSpace)+1; memmove(string, firstNonSpace, len); /* Now remove trailing spaces */ char* endOfString = string + strlen(string) + 1;len; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } memmove(string, firstNonSpace); /* Now remove trailing spaces */ char* endOfString = string + strlen(string) + 1; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } size_t len = strlen(firstNonSpace)+1; memmove(string, firstNonSpace, len); /* Now remove trailing spaces */ char* endOfString = string + len; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 
deleted 142 characters in body
Source Link
AlfaZulu
  • 931
  • 5
  • 13

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } memmove(string, firstNonSpace); /* Now remove trailing spaces */ char* endOfString = string + strlen(string) + 1; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 

[edit] Changed strcpy to memmove and fixed mishandling of embedded spaces. Thanks ChrisN!

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } memmove(string, firstNonSpace); /* Now remove trailing spaces */ char* endOfString = string + strlen(string) + 1; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 

[edit] Changed strcpy to memmove and fixed mishandling of embedded spaces. Thanks ChrisN!

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } memmove(string, firstNonSpace); /* Now remove trailing spaces */ char* endOfString = string + strlen(string) + 1; while(string < endOfString && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 
added 223 characters in body
Source Link
AlfaZulu
  • 931
  • 5
  • 13

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } strcpymemmove(string, firstNonSpace); /* Now remove trailing spaces */     char* endOfString = string + strlen(string) + 1; while(*stringstring !=< '\0'endOfString  && !isspace(*string*endOfString)) { ++string;--endOfString ; } *string*endOfString = '\0'; } 

[edit] Changed strcpy to memmove and fixed mishandling of embedded spaces. Thanks ChrisN!

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } strcpy(string, firstNonSpace); /* Now remove trailing spaces */ while(*string != '\0' && !isspace(*string)) { ++string; } *string = '\0'; } 

You can do this entirely in place.

 void stripLeadingAndTrailingSpaces(char* string){ assert(string); /* First remove leading spaces */ const char* firstNonSpace = string; while(*firstNonSpace != '\0' && isspace(*firstNonSpace)) { ++firstNonSpace; } memmove(string, firstNonSpace); /* Now remove trailing spaces */     char* endOfString = string + strlen(string) + 1; while(string < endOfString  && isspace(*endOfString)) { --endOfString ; } *endOfString = '\0'; } 

[edit] Changed strcpy to memmove and fixed mishandling of embedded spaces. Thanks ChrisN!

added 22 characters in body
Source Link
AlfaZulu
  • 931
  • 5
  • 13
Loading
Source Link
AlfaZulu
  • 931
  • 5
  • 13
Loading