考虑一个函数
void foo(string s) {
...
}
我想按如下方式调用该函数:
char ch = 'a';
foo(ch);
当然它不能像ch字符一样工作,我们需要将其转换为字符串。
我知道我能做到
char ch = 'a';
string str;
foo(str+ch);
我不想string str事先声明,我想在函数调用本身期间做一些事情来转换ch为string,例如:
char ch = 'a';
foo(some_operation_on_ch);
是否可以这样做,如果可以,如何做?
std::string有一个构造函数,它接受一个字符和一个整数,该整数表示该字符重复的次数。使用你可以做的
foo(std::string(1, ch));
该类还有一个构造函数,它采用 c 样式字符串和一个表示要复制的字符数的整数,您可以使用该构造函数,例如
foo(std::string(&ch, 1));