概述
*要求:将从键盘输入的5组字符串按升序排列
示例:
排序前输入:
fsduhfscd
89234232
JDEJFEDE
nejndjDJSN
affnwfwe
排序后输出结果:
89234232
JDEJFEDE
affnwfwe
fsduhfscd
nejndjDJSN
1、初级方法:
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][80];
char s[80];
int i;
int j;
printf("请输入5组字符串:");
for(i = 0; i < 5; i++) {
scanf("%s", str[i]);
//scanf("%s", &str[i][0]);
//&str[0][0],假设type为str[0],
//则&str[0][0] <=> &type[0] <=> &*(type+0) <=> type <=> str[0]
//所以&str[0][0] <=> str[0],即,&str[i][0] <=> str[i]
}
printf("排序前,字符串如下:n");
for(i = 0; i < 5; i++) {
printf("%sn", str[i]);
}
for(i = 0; i < 4; i++) {
for(j = i+1; j < 5; j++) {
if(strcmp(str[i], str[j]) > 0) {
strcpy(s, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], s);
}
}
}
printf("排序后,字符串如下:n");
for(i = 0; i < 5; i++) {
printf("%sn", str[i]);
}
return 0;
}
2、进阶方法:
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][80];
int tmp;
int i;
int j;
int index[5] = {0, 1, 2, 3, 4};
printf("请输入5组字符串:");
for(i = 0; i < 5; i++) {
scanf("%s", str[i]);
}
printf("排序前,字符串如下:n");
for(i = 0; i < 5; i++) {
printf("%sn", str[index[i]]);
}
for(i = 0; i < 4; i++) {
for(j = i+1; j < 5; j++) {
if(strcmp(str[index[i]], str[index[j]]) > 0) {
tmp = index[i];
index[i] = index[j];
index[j] = tmp;
}
}
}
printf("排序后,字符串如下:n");
for(i = 0; i < 5; i++) {
printf("%sn", str[index[i]]);
}
return 0;
}
最后
以上就是曾经羽毛为你收集整理的字符串编程题-字符串升序排序的全部内容,希望文章能够帮你解决字符串编程题-字符串升序排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复