2012-08-05 61 views
0

我有以下2個功能。如何更改代碼以便通過字母顯示?如何僅通過信函列出?

e.g如果我定義了 「A」,它只會隨着A開頭showAllRecords

char* displayRecordContent (CountryRecordType ctryRec) 
{ 
    char * output; 
    output = ctryRec.Country; 
    return output; 
} 

// ==================================================================== 

void showAllRecords() 
{ 
    int i=0; 
    char * result; 
    for (i=0; i<NoOfRecordsRead; i++) 
    { 
    result = displayRecordContent (globalCountryDataArray [i]); 
    printf ("(%d) %s\n", i, result); 
    } 
} 

輸出:

(0) Andorra 
(1) United Arab Emirates 
(2) Afghanistan 
(3) Antigua and Barbuda 
(4) Anguilla 
(5) Albania 
(6) Armenia 
(7) Netherlands Antilles 
(8) Angola 
(9) Antarctica 
+2

當問 '我該怎麼做呢?'如果你展示迄今爲止已經嘗試過的內容,這些問題很有幫助。這是因爲a)更容易告訴被問到的問題,b)更容易說出你可能會被困住的問題,c)這是你的能力的一個很好的標誌,所以答案可以被適當地構建出來,d)它讓人們相信,你實際上是在學習,而不是要求別人爲你做功課。 – jahhaj 2012-08-05 09:55:26

+0

這只是與C++最膚淺的相似之處。如果我是你,我首先找到一個學習C++的源代碼,它教導真正的C++,而不是用C++編譯器編譯的C。 – Puppy 2012-08-05 09:57:30

回答

2
void showAllRecords (char begin) 
{ 
    int i=0, j=0; 
    char * result; 
    for (i=0; i<NoOfRecordsRead; i++) 
    { 
    result = displayRecordContent (globalCountryDataArray [i]); 
    if (result[0] == begin) { 
     printf ("(%d) %s\n", j, result); 
     j++; 
    } 
    } 
} 
2

這是你想要的嗎?

void showAllRecords() 
{ 
    int i=0; 
    char * result; 
    for (i=0; i<NoOfRecordsRead; i++) 
    { 
    result = displayRecordContent (globalCountryDataArray [i]); 
    if(*result == 'A') // or other letter 
     printf ("(%d) %s\n", i, result); 
    } 
}