编程语言
首页 > 编程语言> > 【C++ 字符串题目】 输入三个人名,按字母顺序排序输出

【C++ 字符串题目】 输入三个人名,按字母顺序排序输出

作者:互联网

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

Problem A: 【C++ 字符串】 输入三个人名,按字母顺序排序输出

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

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

Input

三个人名,可以包含空格

Output

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

Sample Input

Mike
Mary
Jim Green

Sample Output

Jim Green
Mary
Mike

 1 #include<iostream>
 2 #include<string>
 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<<string1<<endl<<string2<<endl<<string3<<endl;
23     }
24 // 其他情况下(str1>str2),
25 // 如果str1小于等于str3,则 str1在2和3中间 
26     else if(string1<=string3)
27     {
28         cout<<string2<<endl<<string1<<endl<<string3<<endl;
29     }
30 //其他情况,就剩1>2但1>3,又因为2<3 ,所以按231顺序输出 
31     else
32         cout<<string2<<endl<<string3<<endl<<string1<<endl;    
33 
34     return 0;
35 }

 

 


 

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

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

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

 

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

标签:顺序,C++,getline,字符串,排序,string2,string3
来源: https://www.cnblogs.com/sparse-shadow/p/16311504.html