将char字符串解析为INT C编程

时间:2016-05-05 06:40:07

标签: c string char int

我试图将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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

如果您想在不调用strtol的情况下进行转换,可以扫描color数组,并将每个char'0'进行比较,得到相应的数值,然后将结果正确加上乘以a 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);
}