我正在做一個書練習(不是作業,因爲我是自學的),在這本練習中,我應該用一個類型爲struct的數組寫一本電話簿。 所以我定義:檢查C結構數組中的成員元素的內容
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++;
}
}
所以,我的問題是:
- 我是否初始化數組元素的成員,真正做到零(例如cFirstName [10])?
- 有沒有更好的方法?
- 如何檢查數組元素成員是否爲空?
在此先感謝您的答案!
感謝您的全面解答!我其實想接受每個人的答案。有很多關於C的知識,我正在使用的2本書沒有顯示所有這些細微差別! – Oz123