我有多个char数组要复制到一个字符串或void *或int *。例如,
char c1[] = "Hello";
char c2[] = "World";
char c3[] = "!!!!";
我想复制到一个int *(void *)或string。
答案 0 :(得分:2)
在C ++中,您只需使用+ operator
追加字符串
string a = "abc";
string b = "dfg";
string c = a + b;
cout << c << endl;
答案 1 :(得分:1)
使用C ++的std::string
和std::stringstream
命名空间类会更容易:
#include <sstream>
#include <string>
std::string c1("Hello");
std::string c2("World");
std::string c3("!!!!");
std::stringstream ss;
ss << c1 << c2 << c3;
std::string finalString = ss.str();
您无法将这些内容复制到int*
或void*
,因为这些类型完全不同。
答案 2 :(得分:1)
在我看来,最简单的方法是以下
#include <iostream>
#include <string>
#include <cstring>
int main()
{
char c1[] = "Hello";
char c2[] = "World";
char c3[] = "!!!!";
size_t n = 0;
for ( char *t : { c1, c2, c3 } ) n += strlen( t );
std::string s;
s.reserve( n );
for ( char *t : { c1, c2, c3 } ) s += t;
std::cout << s << std::endl;
return 0;
}
输出
HelloWorld!!!!