如何在C++中将字符串与字符连接起来



我有一个函数,它接受一个字符串,我们称之为

void print(std::string myString) 
{ 
std::cout << myString;
}

我想做一些类似的事情

char myChar;
myChar = '{';
print("Error, unexpected char: " + myChar + "n");

它不起作用。

我试过类似的东西

print(std::string("Error, unexpected char") + std::string(myChar) + std::string("n) )

但是std::string(myChar(变成了char表示的任何int,它被打印为int,而不是打印为字母数字表示!

函数应该声明为:

void print( const std::string &myString) 
{ 
std::cout << myString;
}

并被称为:

print( std::string( "Error, unexpected char: " ) + myChar + "n");

至于你的评论:

作为后续行动,是否可以传递匿名函数是否将字符串作为参数返回到print((?类似于打印({return"你好世界";}

然后您可以按照演示程序中所示的方式进行操作:

#include <iostream>
#include <string>
void f( std::string h() )
{
std::cout << h() << 'n';
}
int main() 
{
f( []()->std::string { return "Hello World!"; } );

return 0;
}

如果您使用C++14,您可以执行以下操作:

using namespace std::literals;
char myChar;
myChar = '{';
print("Error, unexpected char: "s + myChar + "n"s);

您可以转换任意一个和concat。

您可以使用str.c_str()将C++字符串转换为C字符数组。

使用std::string内置构造函数将C字符数组转换为C++字符串。

最新更新