代码如下:
#include <stdio.h>
#include <string.h>
#define row 6 //宏定义 行数
#define col 10 //宏定义 列数
//用冒泡排序来对字符串进行排序
void bubbleSortStrings(char array[][col]){
for (int i = 0; i < row - 1; i++) {
for (int j = 0; j < row - 1 - i; j++) {
if (strcmp(array[j], array[j + 1]) > 0) {
//交换二维数组中每一行的字符串
char temp[col];
strcpy(temp, array[j]);
strcpy(array[j], array[j + 1]);
strcpy(array[j + 1], temp);
}
}
}
}
int main(int argc, const char * argv[]) {
//定义一个二维数组用来接收用户输入的字符串
char array[row][col];
//循环接收用户输入的字符串,并存储在二维数组中
for (int i = 0; i < row; i++) {
printf("请输入第%d个字符串(只含字母与数字,并且长度小于10字节):",i + 1);
rewind(stdin);
scanf("%s",array[i]);
}
//调用冒泡排序
bubbleSortStrings(array);
printf("===========华丽的分割线==============\n\n");
//打印排序后的二维数组
for (int i = 0; i < row; i++) {
printf("排序后第%d个字符串为:%s\n",i + 1,array[i]);
}
return 0;
} |
|