c语言编写trim 函数

大多数语言都有个操作字符串的函数trim。可是c语言的glibc 库里面没带,那就自己DIY个吧。

trim函数的作用是去除字符串两边的空格。


TODO:画图说明

实现源码:

char *ho_trim(char *s) {
    char *start, *last, *bk;
    int len;

    start = s;
    while (isspace(*start))
        start++;

    bk = last = s + strlen(s) - 1;
    while (last > start && isspace(*last))
        last--;

    if ((s != start) || (bk != last)) {
        len = last - start + 1;
        strncpy(s, start, len);
        s[len] = '\0';
    }   
    return s;
}


测试代码:

int main() {

    char buf[128];
    strcpy(buf, "    1234    ");
    printf("$%s:\n", ho_trim(buf));

    strcpy(buf, "1234    ");
    printf("$%s:\n", ho_trim(buf));

    strcpy(buf, "    1234");
    printf("$%s:\n", ho_trim(buf));

    strcpy(buf, "    1234  abcd   ");
    printf("$%s:\n", ho_trim(buf));

    strcpy(buf, "    ");
    printf("$%s:\n", ho_trim(buf));

    strcpy(buf, " ");
    printf("$%s:\n", ho_trim(buf));
    return 0;
}


转载于:https://my.oschina.net/guonaihong/blog/282208

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值