C 如何将字符数组转换为整数?

C 如何将字符数组转换为整数?,c,C,我只是C编程的初学者。在解决编程赋值时,我遇到了将无符号字符数组转换为整数的需要 例如: unsigned char x[]="567"; unsigned char y[]="94"; 现在我必须在x和y中添加整数值。即: int sum=661; 最简单的方法是什么?您正在寻找atoi()您正在寻找atoi()如果您使用标准库,您至少有两个选项。第一个是来自stdlib.h的函数,第二个是来自stdio.h的函数 以下是一些例子: atoi() sscanf() sscanf()为您提供

我只是C编程的初学者。在解决编程赋值时,我遇到了将
无符号字符数组
转换为
整数
的需要

例如:

unsigned char x[]="567";
unsigned char y[]="94";
现在我必须在
x
y
中添加整数值。即:

int sum=661;

最简单的方法是什么?

您正在寻找
atoi()
您正在寻找
atoi()
如果您使用标准库,您至少有两个选项。第一个是来自
stdlib.h
的函数,第二个是来自
stdio.h
的函数

以下是一些例子:

atoi()

sscanf()

sscanf()
为您提供了更好的错误处理。
sscanf()
的返回值确定成功读取了多少项(填充了多少变量)。如果输入失败,则返回EOF


atoi()
如果无法执行有效转换,则返回0。

如果使用标准库,则至少有两个选项。第一个是来自
stdlib.h
的函数,第二个是来自
stdio.h
的函数

以下是一些例子:

atoi()

sscanf()

sscanf()
为您提供了更好的错误处理。
sscanf()
的返回值确定成功读取了多少项(填充了多少变量)。如果输入失败,则返回EOF


atoi()
如果无法执行有效的转换,则返回0。

除非分配旨在处理以这种方式存储的任意大的数字。然后你需要像小学时学过的那样实现十进制加法和进位…但是使用atoi我得到了这个错误“无法将无符号字符*转换为常量字符*。你可以去掉无符号;当使用
char
存储字符(与字节相反)时,这并不意味着什么。除非作业打算让你处理以这种方式存储的任意大的数字。然后你需要像小学时学过的那样实现十进制加法和进位…但是使用atoi我得到了这个错误“无法将无符号字符*转换为常量字符*。你可以丢弃无符号字符;当使用
char
存储字符(而不是字节)时,这并不意味着什么。
char number_string[] = "47";
int number;

number = atoi(number_string);
char number_string[] = "47";
int number;
int return;

return = sscanf(number_string, "%d", &number);
/* it would be good idea to check the return value here */