概述
对学生姓名进行排序。
关键点:对字符串进行比较时,从左往右依次比较字符(比较字符对应的ascii码值),如果相等,就继续比较下一个字符,直到不相等。
#include<stdio.h>
#include<stdlib.h>
#define number 10
//交换姓名
void swap(char *p1, char *p2);
int main(void)
{
char name[number][20];
int i, j, t, order=0;
//输入
printf("请输入%d个姓名:n", number);
for(i=0; i<number; ++i) {
scanf("%s", name[i]);
}
//冒泡排序
for(i=0; i<number; ++i){
order = 0;
for(j=0; j<number-1-i; ++j){
t = 0;
while(name[j][t] == name[j+1][t]) {
++t;
}
if(name[j][t]>name[j+1][t]){
swap(name[j], name[j+1]);
order = 1;
}
}
if(!order) break;
}
//输出
printf("按ascii表顺序排列为:n");
for(i=0; i<number; ++i) {
printf("%st", name[i]);
}
printf("n");
system("pause");
return 0;
}
void swap(char *p1, char *p2)
{
char t[20];
int i;
for(i=0; i<20; ++i) {
t[i] = p1[i];
p1[i] = p2[i];
p2[i] = t[i];
}
}
最后
以上就是细腻石头为你收集整理的利用指针对二维字符数组进行排序的全部内容,希望文章能够帮你解决利用指针对二维字符数组进行排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复