【问题标题】:Parse a char string into an INT C programming将 char 字符串解析为 INT C 编程
【发布时间】:2016-05-05 06:40:06
【问题描述】:

我正在尝试将 char 字符串解析为 INT。

如果我有……

unsigned char color[] = "255"

并想将其解析为 INT。我该怎么做呢?

我试过了……

unsigned char *split;

split = strtok(color," ,.-");
while(split != NULL)
{
    split = strok(NULL, " ,.-);
}

这只是给我现在拆分的值 255。

我觉得我需要类似...

int y = split - '0';   //but this makes an INT pointer without a cast

【问题讨论】:

    标签: c string char int


    【解决方案1】:

    要将字符串转换为整数,请调用strtol:

    char color[] = "255";
    long n;
    char *end = NULL;
    n = strtol(color, &end, 10);
    if (*end == '\0') {
        // convert was successful
        // n is the result
    }
    

    【讨论】:

    • @user3622460 很高兴知道它有帮助。
    【解决方案2】:

    如果您想在不调用 strtol 的情况下进行转换,您可以扫描color 数组并将每个char'0' 进行比较以获得相应的数值,然后将结果适当地乘以10 的幂,即

    int i = 0, strlen = 0, result = 0;
    while (color[i++]) strlen++;
    for (i = 0; i<strlen; i++)
    {
        result += (color[i] - '0')*pow(10,strlen-1-i);
    }
    

    【讨论】:

    • 我不认为“没有 strtol”是 OP 的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2021-01-12
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多