Ответ 1
В С++:
int main(array<System::String ^> ^args)
{
Console::WriteLine(String::Format("You typed '{0}'", Convert::ToChar(65)));
return 0;
}
Здесь есть миллион сообщений о том, как преобразовать символ в его значение ASCII.
Ну, я хочу полную противоположность.
У меня есть значение ASCII, сохраненное как int, и я хочу отобразить его представление символа ASCII в строке.
то есть. пожалуйста, отобразите код для преобразования int 65
в A
.
В настоящее время у меня есть String::Format("You typed '{0}'", (char)65)
но это приводит к "You typed '65'"
, тогда как я хочу, чтобы он был "You typed 'A'"
Я использую С++/CLI, но я предполагаю, что любой язык .NET будет...
(отредактирован пост-гуманно, чтобы улучшить вопрос для будущих гуглеров)
В С++:
int main(array<System::String ^> ^args)
{
Console::WriteLine(String::Format("You typed '{0}'", Convert::ToChar(65)));
return 0;
}
Существует несколько способов:
char c = (char)65;
char c = Convert.ToChar(65);
string s = new string(65, 1);
string s = Encoding.ASCII.GetString(new byte[]{65});
Для значений ASCII вы должны просто указать на char? (С#)
char a = (char)65;
или как строка:
string a = ((char)65).ToString();
Dim str as string
str = Convert.ToChar(65).ToString()
msgbox(str)
Комплексная версия, конечно же, такова:
public string DecodeAsciiByte(byte b) {
using(var w = new System.IO.StringWriter()) {
var bytebuffer = new byte[] { b };
var charbuffer = System.Text.ASCIIEncoding.ASCII.GetChars(bytebuffer);
w.Write(charbuffer);
return w.ToString();
}
}
Конечно, это до того, как я прочитал ответ, используя метод Encoding.GetString
. D'о.
public string DecodeAsciiByte(byte b) {
return System.Text.Encoding.ASCII.GetString(new byte[] { b });
}
Просто бросьте его; не может быть проще.
// C#
int i = 65;
Console.WriteLine((char)i);
В этом есть много способов. Если вы хотите, чтобы они вводили последовательные цифры с пробелами и пробелами, вы могли бы использовать что-то вроде:
string userInput = "123456";
var digits = str.Select(c => Convert.ToInt32(c.ToString()));