有两个不包含空白字符的字符串 str 和 substr,str 的字符个数不超过 10,substr 的字符个数为 3。(字符个数不包括字符串结尾处的 \0
。)
将 substr 插入到 str 中 ASCII 码最大的那个字符后面,若有多个最大则只考虑第一个。
输入格式
输入包括若干行,每一行为一组测试数据,格式为
str substr
输出格式
对于每一组测试数据,输出插入之后的字符串。
输入样例:
abcab eee
12343 555
输出样例:
abceeeab
12345553
ac代码1:
#include<iostream>
using namespace std;
int findmax(string a)
{
int maxvac = 0, len = a.length() ;
char maxc = '0';
for(int i = 0; i <= len; i++ )
{
if(a[i] > maxc){
maxvac = i;
maxc = a[i];
}
}
return maxvac;
}
int main()
{
string a,b;
while(cin >> a >> b)
{
int vac = 0, len = a.length() ;
vac = findmax(a);
for(int i = 0; i <= vac; i++) cout << a[i];
cout << b;
for(int i = vac + 1; i < len; i++ ) cout << a[i];
cout << endl;
}
return 0;
}
ac代码2:
运用substr函数
#include <iostream>
using namespace std;
string a,b;
int main()
{
while (cin >> a >> b)
{
int vac = 0;
for (int i = 1; i < a.size(); i ++ )
if (a[i] > a[vac])
vac = i;
cout << a.substr(0, vac + 1) << b << a.substr(vac + 1) << endl;
}
return 0;
}
或者是用+将三个字符串链接起来:
#include <iostream>
using namespace std;
string a,b;
int main()
{
while (cin >> a >> b)
{
int vac = 0;
for (int i = 1; i < a.size(); i ++ )
if (a[i] > a[vac])
vac = i;
cout << a.substr(0, vac + 1) + b + a.substr(vac + 1) << endl;
}
return 0;
}