1.存放字符串数组的方法:
①使用二维数组char str[size][length],第一维指定字符串的数量,第二维指定字符串的长度,读入时,只需要将内容写入第一维,例如cin >> str[i]
②使用string类型,先加入头文件string,然后就可以定义字符串类型的变量,string变量还可以作为字符数组使用。
2.如果已知一些字符串和它们的逆序,要求按照逆序的升序排列字符串,就涉及到带有关联关系的排序问题,这里有一个好的解决办法是对逆序采用选择排序,每次找出逆序中的最小值,然后输出逆序对应的字符串,接着给这个最小的逆序值赋一个大于数组中任何数的值,再在数组中寻找最小值。为了简化问题,假设这些字符串的长度相等。实现代码如下:
#define NX_MAX 0XFFFFFF //用于赋值给逆序数组中的最小值 int string_count; //字符串的数量 int string_length; //字符串的长度 char string_table[string_count][string_length]; //假设字符串已经录入,注意,实际中不能这 //样给数组开辟内存空间,应该先预定义一个较大的数组 int nx_table[string_count]; //假设对应于上面数组的逆序已经求出 int i,j; int min_index = 0; //存储最小的逆序索引 for(i = 0; i < string_count; i++) { for(j = 0; j < string_count; j++) if(nx_table[j] < nx_table[min_index]) min_index = j; cout << string_table[min_index] << endl; nx_table[min_index] = NX_MAX; //关键的一句,将已使用的逆序赋为不会再被找出的值 }