7-10 英文单词排序(string类型的长度表示方法)

7-10 英文单词排序

分数 15
作者 张泳
单位 浙大城市学院
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

输入格式:

输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

输出格式:

输出为排序后的结果,每个单词后面都额外输出一个空格。

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple 

参考代码

#include<iostream>
#include<string>
#include<string.h>
#include <iomanip>	//stew(6)用到
using namespace std;


int main()
{
	string  str[30];
	
	//输入
	cin >> str[0];
	int n = 1;
	while (str[n-1] != "#")
	{
		cin >> str[n];
		n++;
	}
	n--;	//不把 # 留在字符串数组内,方便我们输出

	//排序
	for (int i = n - 1; i >= 0; i--)
	{
		for (int j = 0; j < i; j++)
		{
			if (str[j].size() > str[j + 1].size())	//string类型的长度表示方法
			{
				string t;
				t = str[j];
				str[j] = str[j + 1];
				str[j + 1] = t;
			}
		}
	}

	//输出,注意把长度为1的 # 剔除,这一步我们在输入哪里把#剔除了,是一个巧妙的操作
	for (int i = 0; i < n; i++)
	{
		cout << str[i] << " ";	//题目要求每个单词后都要有空格,比较反常
	}
	return 0;
}
posted @   yesno233233  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示