Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;将char变量转换为字符串变量将返回ASCII值_C++ - Fatal编程技术网

C++ C++;将char变量转换为字符串变量将返回ASCII值

C++ C++;将char变量转换为字符串变量将返回ASCII值,c++,C++,我的函数如下所示: 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; } } ...

我的函数如下所示:

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;
    }
}
  ...
    else
    {
        return std::string(&c, 1);
    }

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

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

使用
std::string
的构造函数

string t(1, c);

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

使用
std::string
的构造函数

string t(1, c);
方法
to_string()
用于。字符是一种数字类型

请参阅有关如何正确操作的相关问题:

方法
to_string()
用于。字符是一种数字类型


请参阅有关如何正确操作的相关问题:

您也可以使用如下替代字符串构造函数:

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;
    }
}
  ...
    else
    {
        return std::string(&c, 1);
    }

您还可以使用如下替代字符串构造函数:

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;
    }
}
  ...
    else
    {
        return std::string(&c, 1);
    }

您的参数需要切换:例如字符串t(1,c);除此之外,它成功了。谢谢。@nhershy,啊。是的。您的参数需要切换:例如字符串t(1,c);除此之外,它成功了。谢谢。@nhershy,啊。对