我试图将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
答案 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);
}