字符串替换经验值:800
题目描述 Description
给出一个字符串s,其格式类似于"today is _ / _ / _ “。现在给出一个日期,y年m月d日,试将s中的’_'分别替换为日期。比如前面的s结果即为"today is y/m/d”。
输入描述 Input Description
第一行,一个字符串,s,其格式类似于"today is _/_/_"
第二行,一个以空格分隔的日期,y m d
输出描述 Output Description
将s中的’_'分别替换为y, m, d后的结果
样例输入 Sample Input
_/_/_ is your birthday 2015 1 1
样例输出 Sample Output
2015/1/1 is your birthday
数据范围及提示 Data Size & Hint
字符串不会包括多余的’_’
#include<iostream>
#include<cstring>
using namespace std;
string s;
string y,m,d;
int main(){
getline(cin,s);
cin>>y>>m>>d;
string T=m;
string m="",n="";
for(int i=0;i<s.size();i++){
if(s[i]=='_'){
int j=i,k=0;
for(int j=s.size()-1;j>=1;j--){
if(s[j]=='_'){
k=j;
break;
}
}
m=s.substr(i,k+1);
n=s.substr(k+2);
break;
}
}
for(int i=0;i<m.size();i++){
if(m[i]=='_'){
m.erase(i,1);
m=y+m;
break;
}
}
for(int i=0;i<m.size();i++){
if(m[i]=='_'){
m.erase(i,1);
m.insert(i,T);
break;
}
}
for(int i=0;i<m.size();i++){
if(m[i]=='_'){
m.erase(i,1);
m.insert(i,d);
}
}
cout<<m<<" "<<n<<endl;
return 0;
}