我是靠谱客的博主 曾经羽毛,最近开发中收集的这篇文章主要介绍字符串编程题-字符串升序排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

*要求:将从键盘输入的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;
}

 

最后

以上就是曾经羽毛为你收集整理的字符串编程题-字符串升序排序的全部内容,希望文章能够帮你解决字符串编程题-字符串升序排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部