我正在尋找使用用戶輸入的函數交織兩個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