You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中单字符转字符串的其他替代方法(替代string()构造函数)

C++中单字符转字符串的简便方法

先看你给出的代码片段:

string exp; // expression
getline(cin, exp);

stack<int> vs;        // value stack (postfix evaluation)
stack<string> infix;  // infix stack (postfix conversion)
stack<string> prefix; // prefix stack (postfix conversion)

for (int i = 0; i < exp.length(); i++)
{
    char ch = exp[i];
    if (isdigit(ch))
    {
        vs.push(ch - '0');
        infix.push(string(1, ch));
        prefix.push(string(1, ch));
    }
}

你提到想用更简便的方式替代string(1, ch)实现单字符转字符串,C++里确实有几种类似Javach + ""的简洁写法:

  • 空字符串拼接法:std::string{} + ch
    利用空字符串对象重载的+运算符,自动将char转换为string,写法和Java的思路几乎一致,可读性强。

  • 初始化列表构造:std::string{ch}
    C++11及以后支持用初始化列表直接构造string,只需要用大括号包裹字符,是写法最紧凑的方式。

  • 字符串视图(临时场景):std::string_view(&ch, 1)
    如果你的场景只需要临时读取字符串内容、不需要修改字符串,用string_view更高效,不过要注意char的生命周期,避免引用已销毁的对象。

把这些方法替换到你的代码里,比如:

// 用初始化列表构造
infix.push(std::string{ch});
prefix.push(std::string{ch});

// 或者用空字符串拼接
infix.push(std::string{} + ch);
prefix.push(std::string{} + ch);

内容的提问来源于stack exchange,提问作者codosopher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:50:25