山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省
例題:
有3個字符串,要求找出其中“最大”者。
解題思路:
可以設一個二維的字符數組str,大小為3×20,即有3行20列(每一行可以容納20個字符)。每一行存放一個字符串。
如前所述,可以把str [ 0 ],str [ 1 ],str [ 2 ]看作3個一維字符數組(它們各有20個元素)。可以把它們如同一維數組那樣進行處理。今用gets函數分別讀入3個字符串,賦給3個一維字符數組。然后經過3次兩兩比較,就可得到讀入3個字符串給str [ 0 ] , str [ 1 ] , str [ 2 ]值最大者,把它放在一維字符數組string中。
編寫程序:
運行結果:
程序分析:
( 1 )流程圖和程序注釋中的“大于”是指兩個字符串的比較中的“大于”。經過第1個if語句的處理,string中存放了str [ 0 ]和str [ 1 ]中的“大者”。第2個if語句把string和str [ 2 ]比較,把大者存放在string中。最后在string中的就是str [ 0 ],str [ 1 ],str [ 2 ]三者中的最大者。
( 2 ) str [ 0 ],str [ 1 ],str [ 2 ]和string是一維字符數組,其中可以存放一個字符串。( 3 ) strcpy函數在將str [ 0 ],str [ 1 ]或str [ 2 ]復制到string時,最后都有一個‘\0’。因此,最后用%s格式輸出string時,遇到string中第一個\0 '即結束輸出,并不是把string中的全部字符輸出。
當然,這個題目也可以不采用二維數組,而設3個一維字符數組來處理。