C语言:利用冒泡排序算法实现将学生姓名按字典序排序
1.字符数组的定义与初始化
- 定义字符数组的一般格式为:char 数组名[常量表达式];
- 字符数组的初始化有三种不同的方式:(1)用单个字符常量对字符数组进行初始化。 例如:char s[]={‘G’,’o’,’o’,’d’,’\0’};
(2)用字符的ASCII码值对字符数组进行初始化。 例如:char s[]={71,111,111,100,0};
(3)直接把一个字符串赋予一个字符数组。 例如: char s[]=“Good”;
2.字符数组的输入输出
- 利用scanf函数和printf函数的%s格式对字符数组整体进行输入输出。例如: char str[20]; scanf(“%s”,str); printf(“%s”,str);
- (2)逐个输入输出字符数组中的每一个字符。如上例可改写为: for(i=0;i<20;i++) scanf (“%c”,&str[i]); for(i=0;i<20;i++) printf (“%c”, str[i]);
3.字符串处理函数
#include <stdio.h>
#include <string.h>
void main()
{
char str[20],name[5][20]; //用二维数组存放五名学生姓名
int i,j;
printf("请输入五个学生姓名:\n");
for(i=0;i<5;i++) //输入五名学生姓名
{
gets(name[i]);
}
for(i=1;i<5;i++) //用"冒泡排序法"进行排序
{
for(j=0;j<5-i;j++)
{
if(strcmp(name[j],name[j+1])>0)
{
strcpy(str,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],str);
}
}
}
printf("排序后的结果为:\n");
for(i=0;i<5;i++) //输出排序后的五名学生姓名
{
puts(name[i]);
}
}