我有一个问题,我正在尝试读取一个图像文件,在这个文件中有列和行的数量,我试图只读取这些信息来创建一个pixeis矩阵。
例如:char numb[2];
numb[0]='1';
numb[1]='0';
我正在尝试转换为int numb = 10;
感谢
答案 0 :(得分:3)
如果它总是2位数:
int n = (numb[0] - '0')*10 + (numb[1] - '0');
或者您可以声明char numb[3]
,以便numb[0]='1', numb[1]='0', numb[2]='\0'
(基本上将其转换为以空字符结尾的字符串)并使用strtol
:
int n = strtol(numb, NULL, 10);
答案 1 :(得分:2)
我建议这样的事情作为开始:
if (isdigit(numb[0]) && isdigit(numb[1])) {
int val = (numb[0] - '0') * 10 + (numb[1] - '0');
}
另一种方式是:
char str[3] = { numb[0], numb[1], '\0' };
char* enptr;
int val = strtol(str, &endptr, 10);
if (*endptr != '\0')
/* failed to convert */
但它对前一种方法(在这种特殊情况下)几乎没有太大的好处