本文共 1285 字,大约阅读时间需要 4 分钟。
/*C语言去除字符串首尾空格,trim()函数实现https://blog.csdn.net/u013022032/article/details/50521465*/ #include#include #include #include //去除尾部空白字符 包括\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(); return 0; }