1
struct contact list[3];
int checknullarray()
{
    for(int x=0;x<10;x++)
    {
        if(strlen(contact[x].name)==0)
        {
        return x;
        break;
        }
    }
}

checknullarray に問題があります。私のタイプ名(contact[x].name)は許可されていないと言っています。私は今どうすればいい?

4

2 に答える 2

1

連絡先に次のようなメンバーがいると仮定しますchar name[n];

struct contact list[3];

int checknullarray(void) /* void is a better option when no params */
{
    for (int x = 0; x < 10; x++) /* 3 or 10 ? I think you want x < 3 */
    {
        /*
        if(strlen(contact[x].name)==0) No need to strlen, you can check if name[0] == 0
        */
        if (list[x].name[0] == '\0')
        {
               return x;
            /*
               break; why break if you return in previous line?
            */
        }
    }
    return x; /* As suggested by qPCR4vir you need an alternative return */
}
于 2013-02-28T19:38:54.213 に答える
1

楽しみのために:-)(他の解決策は良いです)

#include "contact.h"
#define N 3
struct contact list[N];

int checknullarray(void)
{
    int x;
    for ( x = 0; x < N && *list[x].name; x++) ;
    return x; 
}
int main(void)
{
   /* initialice list */
   int R;
   R=checknullarray();
   if (R==N) /* No name in list =="" */;
}
于 2013-03-01T08:49:52.990 に答える