我的(愚蠢的)情况:
char numbers[3][10] = {"ONE", "TWO, "THREE"};
char letters[2][3] = {"A_", "B_"};
char comb[3][13] = {};
如何通过在一行代码中的所有数字前添加字母“A”来创建一个新的字符数组 comb
?
预期输出:comb = {"A_ONE", "A_TWO, "A_THREE"};
我试过,但不起作用:
comb = letters[0] + numbers;
重要边界:我不能使用 std::string(本网站中有大量带有字符串的解决方案)。对于 C++ 初学者有什么简单的解决方案吗?提前谢谢你
最佳答案
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]
有足够的空间来容纳结果。
关于c++在char的开头插入char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52094083/