编程题#5:字符串插入

描述

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

输入

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

str substr

输出

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

#include <iostream>
using namespace std;

int main() {
    char s1[15], s2[3];
    while (cin >> s1 && cin >> s2) {     
        // 求s1字符串的长度l及最大字符下标max
        int l = 0, max;
        char t = 0; // t用来保存当前最大字符 
        for (int i = 0; s1[i] !='\0'; i++) {
            l++;
            if (s1[i] > t) {
                t = s1[i];
                max = i;
            }
        }
        // 将最大字符后的字符向后挪,腾出三个位置
        for (int i = l - 1; i >= max + 1; i--) {
            s1[i + 3] = s1[i];
        }
        s1[l + 3] = '\0';
        // 将s2插入空出的三个位置上
        for (int i = 0; i < 3; i++) {
            for (int j = max + 1; j <= max + 3; j++)
                s1[j] = s2[i];
        }  
        cout << s1 << endl;     
    }

    return 0;
}

 

posted on 2017-10-26 12:55  平行线不会相交  阅读(990)  评论(0)    收藏  举报

导航