如何将 char 指针指向的值存储到整数变量中?我有以下代码:
main ()
{
int i;
char *tmp = "10";
i = (int)tmp;
printf("value of i is %d",i);
}
我的代码对给定任务最有效吗?我正在使用 Visual Studio 2008。
如何将 char 指针指向的值存储到整数变量中?我有以下代码:
main ()
{
int i;
char *tmp = "10";
i = (int)tmp;
printf("value of i is %d",i);
}
我的代码对给定任务最有效吗?我正在使用 Visual Studio 2008。
C 中的字符串只是一个字符数组,tmp
指向字符串中的第一个字符。您的代码将此指针值(内存地址)转换为整数并将其存储在i
.
你真正想做的是strtol
在stdlib中使用:
#include <stdlib.h>
main ()
{
int i;
char *tmp = "10";
i = (int) strtol(tmp, 0, 10);
printf("value of i is %d",i);
}
您可能应该查看atoi以进行字符串到 int 的转换。
请注意,atoi 不进行错误检查,因此只有在您确切知道输入是什么时才使用它(例如您在示例中使用的常量字符串)。否则使用 Emil Vikström 的答案。