为此,翻阅旧的试卷并做问题:
数组是:
char* s[]={"one","two",NULL,NULL,"five","",""};
使用函数名称:
int inUse(char *s[],int len)
我必须确定不为NULL的元素数量。
我想出了:
int count=0;
for(i=0; i<7, i++)
{
if(s !=NULL)
{
count ++;
}
}
它是否正确?谢谢
修订版:
int inUse(char *s[],int len)
{
int count=0;
for(i=0; i<len, i++)
{
if(s[i] != NULL)
{
count ++;
}
}
return count;
}
最佳答案
首先,
char s*[]={"one","two",NULL,NULL,five,"",""};
无法编译。你的意思是
char* s[]={"one","two",NULL,NULL,"five","",""};
其次,我假设您使用
inUse(s, 7);
/* OR */
inUse(s, sizeof(s) / sizeof(*s));
第三,你应该改变
if(s !=NULL)
至
if(s[i] != NULL)
因为您要检查数组的各个元素是否不是
NULL
。最后,我假设您从该函数返回
count
。