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