如何在c ++中将数组char复制到string或int *(void *)?

时间:2014-11-07 15:44:55

标签: c++ arrays string

我有多个char数组要复制到一个字符串或void *或int *。例如,

char c1[] = "Hello";
char c2[] = "World";
char c3[] = "!!!!";

我想复制到一个int *(void *)或string。

3 个答案:

答案 0 :(得分:2)

在C ++中,您只需使用+ operator追加字符串

即可
string a = "abc";
string b = "dfg";
string c = a + b;
cout << c << endl;

答案 1 :(得分:1)

使用C ++的std::stringstd::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!!!!