标签:顺序 C++ getline 字符串 排序 string2 string3
题目来源:https://acm.ujn.edu.cn
Problem A: 【C++ 字符串】 输入三个人名,按字母顺序排序输出
Time Limit: 1 Sec Memory Limit: 128 MBDescription
输入三个人名,按字母顺序对其进行排序,然后输出。要求使用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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。