2010-05-27 92 views

回答

4

有作为C.但是你的问题一个字符串数据类型,没有这样的事,你可以使用INT的atoi (为const char * STR),记得包括< stdlib.h>中

+0

记住的atoi是相当新的C-世界,C90和C99。如果由于某种原因您没有sprintf,那么您不太可能会出现这种情况。 – 2010-05-27 21:35:45

+1

@ D'Nabre:'atoi'是_new _ ??? – 2010-05-27 23:18:07

1

你不能施放字符数组/为const char *到C中的整数,至少不是在给你一个办法明智的整数结果[1]。唯一的例外是如果你用它来将一个char转换成一个整数,这基本上只是在扩大它,如果你看比特表示。

唯一的办法,你可以做适当的转换功能,如atoisscanf

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

+0

你的意思是我认为sscanf,而不是fscanf。 – progrmr 2010-05-27 22:46:23

+0

我做了,谢谢你指出了这一点。 – 2010-05-27 23:14:53

2

C没有字符串,但它确实有字符数组(就是我们常称的字符串),如:

char someChars[] = "12345"; 

您可以转换(不一样的类型转换)字符的内容阵列,以这样一个int:

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

或者用的atoi:

int result = atoi(someChars); 

类型铸造类似于取机器人可口可乐和百事可乐标签贴在瓶子上。
类型转换是一样倾泻一瓶可乐成百事可乐罐。也许它会适合。

相关问题