我有一个已经将字符串转换为 ASCII 整数的函数,但是我该如何做相反的事情呢?谢谢
问问题
8374 次
6 回答
2
你的问题不清楚。基于您的 ASCII 整数(以您的术语)存储在vector<int>
下面的函数会将其转换为字符串:
std::string
AsciiIntToString ( std::vector<int> const& ascii_ints )
{
std:: string ret_val;
std::vector<int>:: const_iterator it = ascii_ints. begin ();
for ( ; it != ascii_ints. end (); ++it ) {
if ( *it < 0 || *it > 255) throw std::exception ("Invalid ASCII code");
ret_val += static_cast<char>(*it);
}
return ret_val;
}
于 2013-11-08T18:40:02.943 回答
0
以下是一些示例,它们使用二进制格式在数字和数字的文本表示之间进行转换std::bitset
(仅适用于可以用 7 位表示的字符集(例如 US-ASCII)):
char c = 'a';
// char to int.
int i = static_cast<int>(c);
// int to string (works for char to string also).
std::string bits = std::bitset<8>(i).to_string();
// string to (unsigned long) int.
unsigned long ul = std::bitset<8>(bits).to_ulong();
// int to char.
c = static_cast<char>(ul);
于 2013-11-08T18:28:09.873 回答
0
这是一个更简单的方法!
void convertToString()
{
char redo;
int letter;
int length;
do{
cout<< "How long is your word \n";
cin >> length;
cout << "Type in the letter values \n";
for (int x = 0; x < length; x++)
{
cin >> letter;
cout << char (letter);
}
cout << "\n To enter another word hit R" << endl;
cin >> redo;
} while (redo == 'R');
}
于 2014-10-09T03:55:56.960 回答
0
新词“ASCII 'int'”的使用是对 ASCII 代码的不精确——但不是不清楚——的引用。参考很清楚,因为所有的 ASCII 代码都是整数,就像整数一样。
最初的海报能够将 ASCII 字符转换为十进制,大概是使用一个函数。
在 MySQL 中,这将是:SELECT ASCII('A') [FROM DUAL];,返回 65。
要反转方向,请使用 char() 函数:SELECT CHAR(65) [FROM DUAL];
也许这对您来说是一个很好的解决方法。
我建议使用非 GUI 客户端。
于 2015-06-07T22:17:53.167 回答
0
您只需将其存储在 char 变量中:
//Let's say your original char was 'A'...
int asciivalue = int('A');
// Now asciivalue = 65
//to convert it back:
char orig = asciivalue;
cout << orig << endl;
它会输出'A'。
于 2018-07-02T00:31:20.950 回答
0
最好的转换static
方式cast
是
int it=5;
char W = static_cast<char>(*it);
于 2017-07-29T15:52:50.790 回答