This question already has answers here:
How do I trim leading/trailing whitespace in a standard way?

(39个答案)


3年前关闭。




剥离C中的前导空格和尾随空格的最佳方法是什么?

最佳答案

您可以完全就地完成此操作。

 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';

}

关于c - 去除C中前导和尾随空格的最佳算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/352055/

10-11 21:45