我怎么能存储由字符指针指向到一个整数变量的值?我有以下代码:类型转换成int
main()
{
int i;
char *tmp = "10";
i = (int)tmp;
printf("value of i is %d",i);
}
我的代码对于给定任务最有效吗?我使用Visual Studio 2008
我怎么能存储由字符指针指向到一个整数变量的值?我有以下代码:类型转换成int
main()
{
int i;
char *tmp = "10";
i = (int)tmp;
printf("value of i is %d",i);
}
我的代码对于给定任务最有效吗?我使用Visual Studio 2008
你或许应该考虑atoi字符串为int的转换。
注意atoi does no error checking所以只使用它,如果你知道你的输入是什么(如你在你的例子有常量字符串)。否则,请使用EmilVikström的答案。
在C A字符串只是字符数组,并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);
}
刚一说明,他的代码不转换的第一个字符,但在我存储第一字符数组的地址。 – 2013-04-16 07:35:39
阿明,你当然是对的。 –
感谢您的回应,实际上这里tmp的值是未知的,因为我正在阅读另一个文件中的tmp的值,在这种情况下,我不能使用strtol吗? – Vicky
什么语言? C? C++? C#? –
在C语言.. – Vicky