为此,翻阅旧的试卷并做问题:

数组是:

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

09-04 10:50
查看更多