【问题标题】:C++ converting char variable to string variable is returning ASCII valueC ++将char变量转换为字符串变量返回ASCII值
【发布时间】:2018-04-04 12:34:03
【问题描述】:

我的函数如下所示:

string toOriginal(char c)
{
    if (c == '$')
        return "car";
    else if (c == '#')
        return "cdr";
    else if (c == '@')
        return "cons";
    else
    {
        string t = to_string(c);
        return t;
    }
}

但是,当我的字符 c 包含像“r”这样的值时,我希望它以字符串形式返回“r”。但是,它返回一个字符串“114”。

【问题讨论】:

    标签: c++


    【解决方案1】:

    std::to_string 没有采用char 的重载。它将char 转换为int 并为您提供int 的字符串表示形式。

    使用std::string的构造函数。

    string t(1, c);
    

    【讨论】:

    • 您的参数需要切换:例如字符串 t(1, c);除此之外,它奏效了。谢谢。
    • @nhershy,啊。是的。
    【解决方案2】:

    你也可以像这样使用替代的字符串构造函数:

      ...
        else
        {
            return std::string(&c, 1);
        }
    

    【讨论】:

      【解决方案3】:

      to_string() 方法适用于converting a numerical value to a stringchar 是数字类型。

      请参阅此相关问题以了解如何正确操作:Preferred conversion from char (not char*) to std::string

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 2016-09-15
        • 1970-01-01
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多