美文网首页
C语言实现字符串 trim() 函数

C语言实现字符串 trim() 函数

作者: Xezun | 来源:发表于2016-11-12 15:23 被阅读44次

    虽然有两个循环,但是最多只遍历一次,时间复杂度为O(n),甚至更小。

    void xz_trim(char *str, char c) {
        size_t const len = strlen(str);
        // 去尾
        for (NSInteger i = len - 1; i >= 0; i--) {
            if (str[i] == c) {
                str[i] = '\0';
            } else {
                break;
            }
        }
        // 去头
        for (size_t i = 0, first = 0; i < len; i++) {
            if (first == 0) {
                if (str[i] == c) {
                    str[i] = '\0';
                } else {
                    if (i == 0) {
                        break;
                    }
                    first = i;
                    str[0] = str[i];
                }
            } else {
                str[i - first] = str[i];
                if (str[i] == '\0') {
                    break;
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:C语言实现字符串 trim() 函数

          本文链接:https://www.haomeiwen.com/subject/wzjqpttx.html