【发布时间】:2021-04-23 17:50:01
【问题描述】:
我有一个函数,它接受一个字符串并将其转换为 ASCII 字符。但是,当我尝试将此输出存储在字符串中时,输出时会出现奇怪的符号,例如:“└└”。
int returnval(char x)
{
return (int)x - 96;
}
void getWord(string wordRecieved)
{
cout << wordRecieved << endl;
for (int i = 0; i < wordRecieved.length(); i++)
{
std::string final;
final = returnval(wordRecieved[i]);
cout << final;
}
}
【问题讨论】:
-
我认为您误解了字符编码的工作原理。如果
x是一个字符,则(int) x是其编码中的值。如果是 ASCII 字符,x - 96是它与反引号字符的距离。 -
我忘了说,这段代码还将 ASCII 转换为字母表中的字母数,例如1 = 一个。因此,a 的 ASCII 码通常为 97,但减去 96 后其值为 1。
-
'a'的 ASCII 码 是 97。通常情况下,但总是如此。从 1 到 26 的数字都用 ASCII 编码不可打印的字符,这就是为什么当您尝试将它们解释为字符时会看到奇怪的东西.. -
final = returnval(...)从数字生成字符串,但不会从1生成a。你发明了自己的编码,但只实现了一种方式,并假设另一种方式会变魔术 -
请发minimal reproducible example,包括输入、输出和预期输出
标签: c++ string function symbols