C++ 将 char 作为字符串传递给函数而不定义字符串

Him*_*rma 0 c++

考虑一个函数

void foo(string s) {
...
}
Run Code Online (Sandbox Code Playgroud)

我想按如下方式调用该函数:

char ch = 'a';
foo(ch);
Run Code Online (Sandbox Code Playgroud)

当然它不能像ch字符一样工作,我们需要将其转换为字符串。

我知道我能做到

char ch = 'a';
string str;
foo(str+ch);
Run Code Online (Sandbox Code Playgroud)

我不想string str事先声明,我想在函数调用本身期间做一些事情来转换chstring,例如:

char ch = 'a';
foo(some_operation_on_ch);
Run Code Online (Sandbox Code Playgroud)

是否可以这样做,如果可以,如何做?

Nat*_*ica 5

std::string有一个构造函数,它接受一个字符和一个整数,该整数表示该字符重复的次数。使用你可以做的

foo(std::string(1, ch));
Run Code Online (Sandbox Code Playgroud)

该类还有一个构造函数,它采用 c 样式字符串和一个表示要复制的字符数的整数,您可以使用该构造函数,例如

foo(std::string(&ch, 1));
Run Code Online (Sandbox Code Playgroud)