Я делаю книжное упражнение (не домашнее задание, поскольку я самообучаюсь), в котором я должен написать телефонная книга, использующая массив типа struct. Итак, я определил:
typedef struct contact {
char cFirstName[10];
char cLastName[10];
char iTelphone[12];
} address ; // end type
Затем я определил:
address myContacts[5] = {
{
{ '\0' } // inner most braces,
// tell gcc to put 0 in all
// members of each struct ?
} // first braces, tell gcc we have a
// a struct as array member
}; // outer most braces, tell gcc we have
// an array
Теперь у меня есть функция, которая печатает содержимое массива. Однако я этого не делаю. Я не хочу напечатать весь массив, потому что меня интересуют только элементы массива, члены которых не пусты. Итак, я попробовал следующее:
void printContacts( address * myContacts ){
printf("Inside printContacts");
int i = 0;
while ( i < 5 ) {
if (myContacts[i].cFirstName == NULL )
printf("%s", myContacts[i].cFirstName); //does not work
if (myContacts[i].cFirstName == '\0' )
printf("%s", myContacts[i].cFirstName); //does not work
if (myContacts[i].cFirstName[0] != 0 )
{
printf("%s", myContacts[i].cFirstName ); //does work!
}
i++;
}
}
Итак, мои вопросы:
Заранее благодарим за ответы!