在C ++中,如何将两个char数组组合为一个char数组?
我认为应该是这样的:
char[5] text1 = "12345";
char[1] text2 = ",";
char[5] text2 = "678/n";
char[] Value = text1 + text2 + text3;
输出为:
12345,678 / n
我想通过串行端口发送一个char数组,并且想知道如何做到这一点。
答案 0 :(得分:5)
由于您指定了C ++,所以一定要使用std::string
:
std::string text1 = "12345";
std::string text2 = ",";
std::string text3 = "678/n";
std::string Value = text1 + text2 + text3;
如果您需要访问实际字符以发送到串行端口,请使用Value.c_str()
顺便说一句,您的原始代码没有为char数组中的尾随null分配足够的空间。这可能导致内存损坏。
答案 1 :(得分:1)
在c ++中,使用std::string
。它专门为解决此类问题而创建。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string text1( "12345" );
string text2( "," );
string text3( "678/n" );
cout << text1 + text2 + text3;
return 0;
}
但是,如果您只想使用char
数组来答案,可以尝试一下。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char text1[6] = "12345";
char text2[2] = ",";
char text3[6] = "678/n";
char combine[100];
strcpy(combine, text1);
strcat(combine, text2);
strcat(combine, text3);
puts(combine);
return 0;
}
答案 2 :(得分:0)
在C ++中,您可以使用字符串流:
stringstream ss;
ss << "12345" << "," << "678/n";
cout << ss.str();