字符串交叉插入

将一个较短的字符串的字符交叉地插入到另一个较长的字符串中,每个字符以一定的间隔插入。该间隔=(长字符串长度/短字符串),即对两个字符串长度相除取整。例如:如果两个字符串等长(字符插入间隔=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