C语⾔实现去除字符串⾸尾空格/*
C语⾔去除字符串⾸尾空格,trim()函数实现
blog.csdn/u013022032/article/details/50521465
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
//去除尾部空⽩字符包括\t \n \r
/*
标准的空⽩字符包括:
' '    (0x20)    space (SPC) 空格符
'\t'    (0x09)    horizontal tab (TAB) ⽔平制表符
'\n'    (0x0a)    newline (LF) 换⾏符
'\v'    (0x0b)    vertical tab (VT) 垂直制表符
'\f'    (0x0c)    feed (FF) 换页符
'\r'    (0x0d)    carriage return (CR) 回车符
//windows \r\n linux \n mac \r
*/
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 \r \n \t";
printf("before trim:%s\n", str);
char *p = trim(str);
printf("after trim:%s\n", p);
}
}
int main(int argc, char **argv) {
demo();
return0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。