C语言中目前没有现成的trim函数,自己实现了一个。
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
#include <ctype.h>
-
//去除尾部空格
-
char *rtrim(char *str)
-
{
-
if (str == NULL || *str == '\0')
-
{
-
return str;
-
}
-
int len = strlen(str);
-
char *p = str + len - 1;
-
while (p >= str && isspace(*p))
-
{
-
*p = '\0';
-
--p;
-
}
-
return str;
-
}
-
//去除首部空格
-
char *ltrim(char *str)
-
{
-
if (str == NULL || *str == '\0')
-
{
-
return str;
-
}
-
int len = 0;
-
char *p = str;
-
while (*p != '\0' && isspace(*p))
-
{
-
++p;
-
++len;
-
}
-
memmove(str, p, strlen(str) - len + 1);
-
return str;
-
}
-
//去除首尾空格
-
char *trim(char *str)
-
{
-
str = rtrim(str);
-
str = ltrim(str);
-
return str;
-
}
-
void demo()
-
{
-
char str[] = " ab c ";
-
printf("before trim:%s\n", str);
-
char *p = trim(str);
-
printf("after trim:%s\n", p);
-
}
-
int main(int argc, char **argv)
-
{
-
demo();
-
return 0;
-
}