【C++ 字符串题目】 输入三个人名,按字母顺序排序输出
阅读原文时间:2023年07月08日阅读:2

题目来源:https://acm.ujn.edu.cn

Time Limit: 1 Sec  Memory Limit: 128 MB

输入三个人名,按字母顺序对其进行排序,然后输出。要求使用C++的string类型。

三个人名,可以包含空格

排序后的人名,每个人名占一行

Mike
Mary
Jim Green

Jim Green
Mary
Mike

1 #include
2 #include
3 using namespace std;
4 int main()
5 {
6 string string1,string2,string3,temp;//定义
7
8 //从每行输入一个可以包含空格的字符串
9 getline(cin,string1);
10 getline(cin,string2);
11 getline(cin,string3);
12 // 先保证str2小于等于str3
13 if(string2>string3)
14 {
15 temp=string2;
16 string2=string3;
17 string3=temp;
18 }
19 // 如果str1恰好小于str2 按顺序输出即可
20 if(string1<=string2) 21 { 22 cout<str2),
25 // 如果str1小于等于str3,则 str1在2和3中间
26 else if(string1<=string3) 27 { 28 cout<2但1>3,又因为2<3 ,所以按231顺序输出
31 else
32 cout<<string2<<endl<<string3<<endl<<string1<<endl;
33
34 return 0;
35 }


这道题是之前的作业题,重点在于理解题意

要能明白按字母顺序排,其实就是比较ASCII码,就是去比较字符串大小

(好久不做就不会做了,刚开始想偏了,想用at()函数从第一个开始比较,但这种思路就显得很复杂,多层循环嵌套,效率也不好)

(来自杏花疏影的叨叨叨:字符串这函数好多,还是需要时间梳理,慢慢来叭,今天就不做新题了,看了看作业题,感觉都已经不太会写了)