我正在寻找使用用户输入的函数交织两个char数组的最佳方法。我正在学习C++,这是一项家庭作业,所以我不能使用任何先行任务。如果我正朝着正确的方向行事,我只是好奇而已。交错两个char数组的最佳方法
我在想,使用for循环遍历两个数组中的每个索引,然后使用该函数添加两个字符并输出它们。我也必须使用指针来完成这项任务。
#include <iostream>;
using namespace std;
char* strinterleave(const char *a, const char *b) {
char done;
done = *a + *b;
}
int main() {
char interleave[]="";
char storage1[] = "";
char storage2[] = "";
int lena;
int lenb;
char *a_ptr = storage1;
char *b_ptr = storage2;
cin.getline(storage1, numeric_limits<streamsize>::max(), ' ');
cin.getline(storage2, numeric_limits<streamsize>::max());
lena = strlen(a_ptr);
lenb = strlen(b_ptr);
int finallen = lena + lenb;
for (int j = 0; j <= finallen; ++j) {
strinterleave(a_ptr[j], b_ptr[j]);
}
}
这是错误的方式去做这件事,如果是的话,那么什么是正确的方向去?
谢谢
谢谢Olan的帮助。通过两个字符串,最好是通过两个数组运行两个for循环吗? – Motorscooter
两个循环将起作用。一个循环复制第一个字符串。从第一个字符串复制字符时,可以为第二个字符串留出空间。棘手的部分可能仍然是处理不同长度的字符串。我认为你目前的单循环方法也不错。 – Olan
再次非常感谢您的帮助和指导,我没有任何人可以真正反弹出主意。我想我只是想再问一遍,这是否是现在正确的方向?现在我的做法是做一个while循环,当我们到达最小数组的空终止符时停止,然后使用for循环,我将以某种方式将大数组中的额外字符添加到它。 – Motorscooter