這裏是我的代碼,並且即時通訊知道爲什麼我的char *bdin
未被regonized爲數字,當它在函數isdigit()中被選中時?這裏是我改進的getline和我的檢查函數,對於檢查函數不要看看參數,我只是創建函數來實驗。我想當我把bdin
放在功能isdigit()
,它給他們地址到第一個元素[0]
。我嘗試用(char *) (bdin)[0]
也做的就是第一要素,因爲對方是'\n'
和'\0'
,但它仍然不幹活......Isdigit do not regonize Char * like digirt
int getline(char *ulaz)
{
int i , c;
for (i = 0; (c = getchar())!= EOF && c!='\n';i++, ulaz++)
*ulaz = c;
if (c =='\n')
*ulaz++ = '\n';
*ulaz = '\0';
return i;
}
void checker(void)
{
int duzina;
char *bdin;
duzina = getline(&bdin);
if (isdigit(bdin))
printf("It is digit!!\n");
else
printf("no!\n");
}
使用調試器... – 2014-10-31 19:34:48
無論這個代碼有什麼其他可能的錯誤,'isdigit(bdin)'應該是'isdigit(* bdin)' – 2014-10-31 19:37:01
首先,將char * bdin改爲'char bdin' 。有趣的是編譯器沒有提醒你。 – 2014-11-08 20:26:37