题目1419:文献排序----包含空格的字符串的输入和排序;toLow()函数没有改变字符串本身;gets()得多写一次,可能是为了接受回车;
#include<stdio.h> #include<cstring> #include<algorithm> using namespace std; struct string { char str[210]; }s[210]; void toLow(char c[]) { int len=strlen(c); for(int j=0;j<len;j++) { if(c[j]>='A' && c[j]<='Z') c[j]=c[j]-'A'+'a'; } } int cmp(string s1,string s2) { toLow(s1.str);//这里的变化并未影响字符串本身 toLow(s2.str); return strcmp(s1.str,s2.str)<0; } int main() { int n; while(scanf("%d",&n)!=EOF) { int i; gets(s[0].str);//多写了一次,可能是为了接收上面的回车 for(i=0;i<n;i++) gets(s[i].str); sort(s,s+n,cmp); for(i=0;i<n;i++) puts(s[i].str); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步