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

3df52oht  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(127)

考虑一个函数

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);

是否有可能这样做,如果有,如何做?

x3naxklr

x3naxklr1#

std::string有一个构造函数,它接受一个字符和一个表示字符重复次数的整数。

foo(std::string(1, ch));

该类还有一个构造函数,该构造函数接受c样式字符串和一个表示要复制的字符数的整数,您可以像这样使用该构造函数

foo(std::string(&ch, 1));
i7uq4tfw

i7uq4tfw2#

您可以用途:

char ch = 'a';
foo(std::string(1, ch));

相关问题