如何将char指针指向的值存储到整数变量中?我有以下代码:
main ()
{
int i;
char *tmp = "10";
i = (int)tmp;
printf("value of i is %d",i);
}
我的代码对于给定的任务是否最有效?我正在使用Visual Studio 2008。
答案 0 :(得分:3)
C中的字符串只是一个字符数组,tmp
指向字符串中的第一个字符。您的代码将此指针值(内存地址)转换为整数,并将其存储在i
。
您真正想要做的是在stdlib中使用strtol
:
#include <stdlib.h>
main ()
{
int i;
char *tmp = "10";
i = (int) strtol(tmp, 0, 10);
printf("value of i is %d",i);
}
答案 1 :(得分:1)
您应该查看atoi的字符串到int转换。
请注意atoi does no error checking所以只有在您确切知道输入内容时才使用它(就像您的示例中的常量字符串一样)。否则请使用EmilVikström的答案。