Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何连接字符?_C++ - Fatal编程技术网

C++ 如何连接字符?

C++ 如何连接字符?,c++,C++,我试图将字符串中的字符连接起来,以检查它是否是一个单词。 例如: 但s5是UNICODE的总和,而不是串联。我还尝试使用append方法,比如 string s5 = ""; s5.append(s1[0]); 但这意味着没有匹配的函数可以调用。 我将非常感谢任何帮助以下是实现您所需的两种方法: std::string s1 = "battle"; std::string s2 = "all"; std::string s3 = "lolo"; std::string s4 = "leaf";

我试图将字符串中的字符连接起来,以检查它是否是一个单词。 例如:

但s5是UNICODE的总和,而不是串联。我还尝试使用append方法,比如

string s5 = "";
s5.append(s1[0]);
但这意味着没有匹配的函数可以调用。
我将非常感谢任何帮助

以下是实现您所需的两种方法:

std::string s1 = "battle";
std::string s2 = "all";
std::string s3 = "lolo";
std::string s4 = "leaf";

{
    // thanks to Mooing Duck for this one
    std::string s5 = {s1[0], s2[0], s3[0], s4[0]/*, '\0'*/};
    std::cout << s5 <<  "\n";
}
{
    // thanks to  Igor Tandetnik for this one
    std::string s5 = std::string() + s1[0] + s2[0] + s3[0] + s4[0];
    std::cout << s5 <<  "\n";
}
{
    std::string s5;
    for (const auto &str : { s1, s2, s3, s4 })
        s5.push_back(str.at(0));
    std::cout << s5 <<  "\n";

}
{
    std::stringstream ss;
    ss << s1[0] << s2[0] << s3[0] << s4[0];
    std::string s5 = ss.str();
    std::cout << s5 << "\n";
}
{
    std::string s5 = std::string(1, s1[0]) + std::string(1, s2[0]) + std::string(1, s3[0]) + std::string(1, s4[0]);
    std::cout << s5 << "\n";
}
{
    std::string s5;
    s5.resize(4);
    s5[0] = s1[0];
    s5[1] = s2[0];
    s5[2] = s3[0];
    s5[3] = s4[0];
    std::cout << s5 << "\n";
}
{
    std::string s5;
    s5 += s1[0];
    s5 += s2[0];
    s5 += s3[0];
    s5 += s4[0];
    std::cout << s5 << "\n";
}
std::string s1=“battle”;
std::string s2=“全部”;
std::string s3=“lolo”;
std::string s4=“叶”;
{
//这一次多亏了麋鹿
字符串s5={s1[0],s2[0],s3[0],s4[0]/*,'\0'*/};

std::cout
strings5=string()+s1[0]+s2[0]+s3[0]+s4[0];
将是一种方式。
s5.push_back(s1[0]);
将是另一种方式。我想知道
strings5={s1[0],s2[0],s3[0],s4[0],'\0}
有效?@MooingDuck不需要
'\0'
std::string
's将自行处理。@MooingDuck是的,包括null给出一个大小为5的字符串:您的第一个示例也可以简化:还有
s5.append(&s1[0],1);…
s5.append(s1.begin(),s1.begin()+1);…
std::string s1 = "battle";
std::string s2 = "all";
std::string s3 = "lolo";
std::string s4 = "leaf";

{
    // thanks to Mooing Duck for this one
    std::string s5 = {s1[0], s2[0], s3[0], s4[0]/*, '\0'*/};
    std::cout << s5 <<  "\n";
}
{
    // thanks to  Igor Tandetnik for this one
    std::string s5 = std::string() + s1[0] + s2[0] + s3[0] + s4[0];
    std::cout << s5 <<  "\n";
}
{
    std::string s5;
    for (const auto &str : { s1, s2, s3, s4 })
        s5.push_back(str.at(0));
    std::cout << s5 <<  "\n";

}
{
    std::stringstream ss;
    ss << s1[0] << s2[0] << s3[0] << s4[0];
    std::string s5 = ss.str();
    std::cout << s5 << "\n";
}
{
    std::string s5 = std::string(1, s1[0]) + std::string(1, s2[0]) + std::string(1, s3[0]) + std::string(1, s4[0]);
    std::cout << s5 << "\n";
}
{
    std::string s5;
    s5.resize(4);
    s5[0] = s1[0];
    s5[1] = s2[0];
    s5[2] = s3[0];
    s5[3] = s4[0];
    std::cout << s5 << "\n";
}
{
    std::string s5;
    s5 += s1[0];
    s5 += s2[0];
    s5 += s3[0];
    s5 += s4[0];
    std::cout << s5 << "\n";
}