小编She*_*lem的帖子

删除逗号之间的白色字符,但不删除逗号内的内容之间的白色字符

我是 C 新手,正在学习 C90。我正在尝试将字符串解析为命令,但我很难尝试删除白色字符。

我的目标是解析这样的字符串:

NA ME, NAME   , 123 456, 124   , 14134, 134. 134   ,   1   
Run Code Online (Sandbox Code Playgroud)

进入这个:

NA ME,NAME,123 456,124,14134,134. 134,1
Run Code Online (Sandbox Code Playgroud)

因此参数内的白色字符仍然存在,但其他白色字符被删除。

我想过使用strtok,但我仍然想保留逗号,即使有多个连续的逗号。

到目前为止我用过:

void removeWhiteChars(char *s)
{
    int i = 0;
    int count = 0;
    int inNum = 0;
    while (s[i])
    {
        if (isdigit(s[i]))
        {
            inNum = 1;
        }
        if (s[i] == ',')
        {
            inNum = 0;
        }
        if (!isspace(s[i]) && !inNum)
            s[count++] = s[i];
        else if (inNum)
        {
            s[count++] = s[i];
        }

        ++i;
    }
    s[count] = …
Run Code Online (Sandbox Code Playgroud)

c c89 ansi-c

3
推荐指数
1
解决办法
315
查看次数

标签 统计

ansi-c ×1

c ×1

c89 ×1