C ++在char开头插入char

时间:2018-08-30 09:51:57

标签: c++

我(愚蠢的)情况:

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 ++初学者来说,有任何简单的解决方案吗?预先谢谢你

2 个答案:

答案 0 :(得分:3)

comb = letters[0] + numbers;

这不起作用,因为您试图将char*添加到char**,然后将其分配给char**

正如您所指出的,您不能使用std::string,因此应该使用strcpystrcat。这样。

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