显式转换C.

时间:2013-04-11 17:51:41

标签: c type-conversion

如果我有以下内容:

char id[5]="1";

我希望将id用作整数,我必须先将其转换,或者是否(int)id使用该字符串中的值?

3 个答案:

答案 0 :(得分:4)

不......你需要使用int n = atoi( id )

之类的函数调用来转换它

一个char数组只是......一个char数组......它不是你想的意义上的数字。您需要使用函数调用将其从值的字符串表示形式转换为您正在寻找的实际数字整数值。

答案 1 :(得分:1)

您可以使用atoi将字符串转换为整数:

char id[5] = "1";
int n = atoi(id); // n = 1

答案 2 :(得分:1)

C不提供字符串和数字数据之间的类型转换。

要从字符串转换为int,您需要使用atoi或(更好)strtolstrtol更好,因为如果输入字符串无法转换为数字,它不会导致未定义的行为,并且它允许您检测"42xyz"之类的情况并做出正确的反应。