标签:
字符串排序有2种:
1长度strlen
2比较strcmp
读入一个3行的二维字符串数组,使用求字符串长度函数strlen,进行从大到小排序,使用冒泡排序。
1 #include <stdio.h> 2 #include <string.h> 3 main() 4 { 5 int i, j; 6 char t[20], a[3][20]; 7 for (i = 0;i < 3;i++) /* 为a表赋值 */ 8 { 9 gets(a[i]); 10 } 11 12 printf("\n"); 13 for (i = 0;i < 3;i++) /* 输出a表 */ 14 { 15 puts(a[i]); 16 } 17 printf("\n"); 18 19 for (i = 0;i < 3 - 1;i++) 20 { 21 for (j = i + 1;j < 3;j++) 22 { 23 if (strlen(a[i]) < strlen(a[j])) /* 求字符串长度函数strlen */ 24 { 25 strcpy(t, a[i]); /* 字符串复制函数strcpy */ 26 strcpy(a[i], a[j]); 27 strcpy(a[j], t); 28 } 29 } 30 } 31 32 for (i = 0;i < 3;i++) /* 输出a表 */ 33 { 34 puts(a[i]); 35 } 36 }
读入一个3行的二维字符串数组,使用字符串比较函数strcmp,进行从大到小排序,使用冒泡排序。
1 #include <stdio.h> 2 #include <string.h> 3 main() 4 { 5 int i, j; 6 char t[20], a[3][20]; 7 for (i = 0;i < 3;i++) /* 为a表赋值 */ 8 { 9 gets(a[i]); 10 } 11 12 printf("\n"); 13 for (i = 0;i < 3;i++) /* 输出a表 */ 14 { 15 puts(a[i]); 16 } 17 printf("\n"); 18 19 for (i = 0;i < 3 - 1;i++) 20 { 21 for (j = i + 1;j < 3;j++) 22 { 23 if (strcmp(a[i], a[j]) < 0) /* 字符串比较函数strcmp,若前者a[i]<后者a[j],函数值小于0 */ 24 { 25 strcpy(t, a[i]); /* 字符串复制函数strcpy */ 26 strcpy(a[i], a[j]); 27 strcpy(a[j], t); 28 } 29 } 30 } 31 32 for (i = 0;i < 3;i++) /* 输出a表 */ 33 { 34 puts(a[i]); 35 } 36 }
123
全国计算机等级考试二级教程-C语言程序设计_第10章_字符串
标签:
原文地址:http://www.cnblogs.com/denggelin/p/5414909.html