C 如何读取999以上用逗号分隔的数字(如10000)?

C 如何读取999以上用逗号分隔的数字(如10000)?,c,C,我是C语言(和编程)的新手,我的问题可以通过一些基本的搜索和阅读来回答;如果这个问题存在,请给我一个答案 假设我想从用户那里读取一个可能高于999的数字。根据我的经验,如果我输入值10000(包括逗号),程序将读取数字直到逗号,然后停止输入。因此,输入将是10而不是10000 如何使其读作“10000”就好像它是10000?#包括 #include <stdio.h> #include <stdlib.h> void RemoveChar(char* Number, c

我是C语言(和编程)的新手,我的问题可以通过一些基本的搜索和阅读来回答;如果这个问题存在,请给我一个答案

假设我想从用户那里读取一个可能高于999的数字。根据我的经验,如果我输入值10000(包括逗号),程序将读取数字直到逗号,然后停止输入。因此,输入将是10而不是10000

如何使其读作“10000”就好像它是10000?

#包括
#include <stdio.h>
#include <stdlib.h>

void RemoveChar(char* Number, char chartoberemoved)
{
    char *p, *s;
    p = s = Number;
    while (*s)//Run until last \r\n
    {

        if (*s != chartoberemoved)
        {
            *p++ = *s;
        }
        /* We always advance s. */
        s++;

    }
    /* We 0-terminate p. */
    *p = 0;
}


int main(int argc, char* argv[])
{
    char array[32];
    if (!argv[1])
        return -1;
    strcpy(array, argv[1]);
    RemoveChar(array, ',');
    int num = atoi(array);
    printf("%d\n", num);

    return 0;
}
#包括 void RemoveChar(char*Number,char chartoberemoved) { 字符*p,*s; p=s=数量; while(*s)//运行到最后一次\r\n { 如果(*s!=已删除) { *p++=*s; } /*我们总是向s前进*/ s++; } /*我们以0-p结束*/ *p=0; } int main(int argc,char*argv[]) { 字符数组[32]; 如果(!argv[1]) 返回-1; strcpy(数组,argv[1]); RemoveChar(数组,,); int num=atoi(数组); printf(“%d\n”,num); 返回0; }
使用strtok其信息和文档可在此处找到

Linux上大多数scanf和printf的实现都支持
,以说明数字可能有一个千位分隔符:

#include <stdio.h>
#include <locale.h>


int main(int argc, char const *argv[])
{
    setlocale(LC_NUMERIC, ""); // set the locale so that "," is a thousands separator

    const char* string = "10,000";

    float num = 0;
    sscanf(string, "%'f", &num);
    printf("%f\n", num);

    return 0;
}

读取为字符串,从字符串中删除所有逗号,分析字符串以将其转换为整数。@Someprogrammerdude谢谢。这也是我最初的想法。我可能需要阅读如何做到这一点。
10000.000000