测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A39793. 字符串插入

填空题 困难

题目描述

字符串插入

题目描述

有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的’\0’。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。

输入

输入包括若干行,每一行为一组测试数据,格式为

str substr

输出

对于每一组测试数据,输出插入之后的字符串。

样例输入

abcab eee

12343 555

样例输出

abceeeab

12345553

参考答案

#include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef struct { char str[20]; int length; }SqList; int Locate(const SqList &L) { int s = 0; char max; max=L.str[0]; for(int i = 1 ; i < L.length ; i++) { if(L.str[i] > max) { max = L.str[i]; s = i + 1; } } if(s == 0) s = 1; return s; } bool AddList(SqList &L,int i,string substr) { int t = 0; if(i < 1 || i > L.length + 1) return false; for(int k = L.length ; k >= i-1 ; k--) L.str[k+3] = L.str[k]; for(int j = i ; t < 3 ; j++) { L.str[j] = substr [t]; t++; } L.length += 3; return true; } void DispList(const SqList &L) { for(int i = 0 ; i < L.length ; i++) cout<<L.str[i]; } char substr[3]; int main() { SqList L; int j = 0,m,n; while(cin>>L.str>>substr) { L.length=strlen(L.str); m = Locate(L); AddList(L,m,substr); DispList(L); cout<<endl; } return 0; }
上一题 下一题