字符串交叉插入

将一个较短的字符串的字符交叉地插入到另一个较长的字符串中,每个字符以一定的间隔插入。该间隔=(长字符串长度/短字符串),即对两个字符串长度相除取整。例如:如果两个字符串等长(字符插入间隔=1),就将后输入的串的字符每隔一个字符插入先输入的串当中;被插入的字符串长度为12,待插入的字符串的长度为5,那么字符插入间隔为2,以此类推。请参考Sample Input和Sample Output。

输入

只有一组测试数据,两个字符串(它们的长度不会超过100)。

输出

输出1行信息,即插入后的新串。

样例输入
ABCDEFG abcdefg
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghi
样例输出
AaBbCcDdEeFfGg
ABaCDbEFcGHdIJeKLfMNgOPhQRiSTUVWXYZ
#include<iostream>   
#include<cstring>   
using namespace std;   
int main()   
{   
    int m, n, i, j, k; char f[100005], x[100005], y[100005];   
    while (cin >> x >> y)   
    {   
        m = strlen(x);   
        n = strlen(y);   
        k = m / n;   
        j = 0;   
        if (k == 0)   
        {   
            strcpy(f, x);   
            strcpy(x, y);   
            strcpy(y, f);   
            m = strlen(x);   
            n = strlen(y);   
            k = m / n;   
        }   
        for (i = 0; i < m; i++)   
        {   
            cout << x[i];   
            if ((i + 1) % k == 0 && j < n)   
            {   
                cout << y[j];   
                    j++;   
            }   
    
        }   
        if (j < n)   
        for (i = j; i < n; i++)   
            cout << y[i];   
        cout << endl;   
    }   
    return 0;   
}   

 

转载于:https://www.cnblogs.com/Lazy-Cat/p/9838467.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值