如何在C中键入将字符串转换为整数并将其存储在整数数组中?

时间:2010-05-27 16:16:53

标签: c

我想知道如何将字符串转换为整数,而不是在C中使用sprintf()

3 个答案:

答案 0 :(得分:5)

C中不存在字符串数据类型。但是对于您的问题,您可以使用 int atoi(con​​st char * str)并记住包含< stdlib.h>

答案 1 :(得分:2)

C没有字符串,但它有char数组(我们经常称之为字符串),例如:

char someChars[] = "12345";

您可以将字符数组的内容转换(与类型转换不同)为int,如下所示:

int result;
sscanf(someChars, "%d", &result);

或使用atoi:

int result = atoi( someChars );

类型铸造就像拿一瓶可乐并在瓶子上贴上百事可乐标签。
类型转换就像将一瓶可乐倒入百事可乐罐中。也许它会适合。

答案 2 :(得分:1)

你不能将一个char数组/ const char *转换为C中的整数,至少不能以一种给你一个合理的整数结果的方式[1]。唯一的例外是如果您使用它将单个字符转换为整数,如果您查看位表示,基本上只是加宽它。

唯一可以执行atoisscanf等正确转化功能的方式。

[1]是的,我知道你可以将指针(const char *)转换为整数,但是它会转换指针的值而不是它指向的数据的值。