C 实现 字符串 去前后空白符的函数 strtrim

来源:互联网 发布:python 字典 list 编辑:程序博客网 时间:2024/04/29 09:46

strtrim 函数我个人认为比较好理解,strtrim_fast是我从别人的论坛中借鉴过来的,个人不认为会在大部分的情况下strtrim_fast会比strtrim 快,举个简单的case,如果回溯的次数很低,strtrim的速度应该会比strstrim_fast的速度快

/* * strtrim 去掉字符串前后的空格和制表符 */ #include <stdio.h>char * strtrim(char *s) {    char *p = s;    char *q = s;    while (*p==' ' || *p=='\t') ++p;    while (*q++=*p++)        ;    q -= 2;    while (*q==' ' || *q=='\t') --q;    *(q+1) ='\0';    return s;}char * strtrim_fast(char *s) {    char *p = s;    char *q = s;    char *end = s;    while (*p==' ' || *p=='\t') ++p;    while (*q = *p) {        if (*q!=' ' && *q!='\t') end = q+1;        ++q, ++p;    }    *end = '\0';    return s;}int main() {    char s[BUFSIZ] = "          abd             abc             ";    puts(s);    strtrim(s);    puts(s);}
0 0
原创粉丝点击