山不在高,有仙则名。水不在深,有龙则灵。 ----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个一维字符数组来处理。