我怎麼能存儲由字符指針指向到一個整數變量的值?我有以下代碼:類型轉換成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