我想知道如何将字符串转换为整数,而不是在C中使用sprintf()
答案 0 :(得分:5)
C中不存在字符串数据类型。但是对于您的问题,您可以使用 int atoi(const 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]。唯一的例外是如果您使用它将单个字符转换为整数,如果您查看位表示,基本上只是加宽它。
唯一可以执行atoi
或sscanf
等正确转化功能的方式。
[1]是的,我知道你可以将指针(const char *)转换为整数,但是它会转换指针的值而不是它指向的数据的值。