我(愚蠢的)情况:
char numbers[3][10] = {"ONE", "TWO, "THREE"};
char letters[2][3] = {"A_", "B_"};
char comb[3][13] = {};
如何通过在所有数字之前的一行代码中添加字母“ A”来创建新的char数组comb
?
预期输出:comb = {"A_ONE", "A_TWO, "A_THREE"};
我尝试过但不起作用:
comb = letters[0] + numbers;
重要边界:我不能使用std :: string(此站点中有很多带有string的解决方案)。对于C ++初学者来说,有任何简单的解决方案吗?预先谢谢你
答案 0 :(得分:3)
comb = letters[0] + numbers;
这不起作用,因为您试图将char*
添加到char**
,然后将其分配给char**
。
正如您所指出的,您不能使用std::string
,因此应该使用strcpy
和strcat
。这样。
for(int i = 0; i < 3 ; ++i)
{
std::strcpy(comb[i], letters[0]);
std::strcat(comb[i], numbers[i]);
}
您需要确保comb[i]
有足够的空间来容纳结果。
答案 1 :(得分:0)
您可以使用以下算法:
For each index i of numbers
let l be length of letters[0]
copy letters[0] into comb[i]
copy numbers[i] into comb[i], starting from index l