资深守护
双十一刚过,快递中心十分繁忙。请你帮忙编写一个程序来分拣快递:已知快递的收货地址是一个字符串(不含空格),现在有n件快递。请你按照收货地址的首字母ascii码值从小到大给快递进行排序。如果首字母相同则按照字符串长度从小到大排序,字符串长度也相同则按照字符串字典序从小到大排序,并输出。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
string a,b,s,s1="12345";
int main(){
getline(cin,a);
getline(cin,b);
s=a.substr(4,3);
int p=b.find(s);
if(p=-1){
cout<<-1;
}
else{
b.erase(p,3);
b.insert(p,s1);
cout<<b;
}
return 0;
}
杜明泽在2021-08-17 20:21:24追加了内容
给定两个含空格的字符串a和b,截取字符串a第3个位置开始的3个字符作为子串,如果字符串b中也有相同的子串,则将在b中找到的第一个相同的子串替换为"12345",输出替换后的字符串b#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
string a,b,s,s1="12345";
int main(){
getline(cin,a);
getline(cin,b);
s=a.substr(4,3);
int p=b.find(s);
if(p=-1){
cout<<-1;
}
else{
b.erase(p,3);
b.insert(p,s1);
cout<<b;
}
return 0;
} ,如果字符串b中没有相同的子串,则输出-1。
缔造者
函数
string s[105];
bool cmp(string a,string b){
if(a[0]!=b[0]) return a[0]<b[0];
if(a.size()!=b.size()) return a.size()<b.size();
return a<b;
}
主函数核心
for(int i=1;i<=n;i++){
cin>>s[i];
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i]<<endl;
}
缔造者
最后一题
函数
double a[105];
bool cmp(double a,double b){
if(a[0]!=b[0]) return a[0]<b[0];
if(a.size()!=b.size()) return a.size()<b.size();
return a<b;
}
主函数核心
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i]<<endl;
}