这里是我的代码,并且即时通讯知道为什么我的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