题目描述
有两个不包含空白字符的字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的’\0’。)
将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
输入格式
输入包括若干行,每一行为一组测试数据,格式为
str substr
输出格式
对于每一组测试数据,输出插入之后的字符串。
样例
输入样例:
abcab eee
12343 555
输出样例:
abceeeab
12345553
思路
一:
调用 if(a[i]>a[p])
a[p]=a[i];//a[p]用来存储最大值
二:
substr()的函数调用,
这里介绍substr的2种用法:
假设:string s = “0123456789”;
string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = “56789”
string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = “567”
所以调用cout<<a.substr(0,p+1)+b+a.substr(p+1)<<endl;在第一个最大值的字母后插入字符串b.
C++ 代码
#include<iostream>
using namespace std;
int main()
{
string a,b;
while(cin>>a>>b)
{
int p=0;
for(int i=0;i<a.length();i++)
if(a[i]>a[p])
p=i;
cout<<a.substr(0,p+1)+b+a.substr(p+1)<<endl;
}
return 0;
}