在C语言中模仿Python的strip()函数


问题内容

我最近开始在C中进行一个小玩具项目,并一直在努力模仿python字符串对象一部分的strip()功能的最佳方法。

读一遍fscanf或sscanf表示该字符串被处理到遇到的第一个空格。

fgets也无济于事,因为我仍然有换行符。我确实尝试了strchr()来搜索空格,并将返回的指针显式设置为“ \ 0”,但这似乎不起作用。


问题答案:

对于strip()或trim()函数,没有标准的C实现。就是说,这是Linux内核中包含的一个:

char *strstrip(char *s)
{
        size_t size;
        char *end;

        size = strlen(s);

        if (!size)
                return s;

        end = s + size - 1;
        while (end >= s && isspace(*end))
                end--;
        *(end + 1) = '\0';

        while (*s && isspace(*s))
                s++;

        return s;
}