Member 13848144 Ответов: 2

Вопрос о программе C# с кодом ascii


Я новичок в c#, и у меня есть вопрос ,
как я могу подсчитать появление каждого отдельного символа текста с кодом ascii

Что я уже пробовал:

Приставка.WriteLine("текст: ");
txt = консоль.Линия чтения()

2 Ответов

Рейтинг:
1

George Swan

Вы всегда можете использовать Linq. Преобразование string К List типа char. Сортировка List Сгруппируйте символы по символам в новый анонимный тип с двумя полями-буквой и числом. Letter-это ключ группы, А Count-общее количество элементов группы. Перечислите запрос и распечатайте результаты на консоли.


Рейтинг:
0

OriginalGriff

C# по умолчанию не использует ASCII - он использует Unicode, который шире (16 бит вместо 7 или 8 для расширенного ASCII) . при использовании Console.readLine строка, которую вы получаете, является строкой Unicode, содержащей Unicode chars. Для "истинного ASCII" вам придется использовать массив байтов и перевести Юникод:

string s = Console.ReadLine();
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(s);


Но... для большинства входных данных это не имеет значения, и если вы новичок, то это, вероятно, ваша домашняя работа по подсчету символов.
Самый простой способ? Отсортировать их. Затем все повторения находятся рядом друг с другом и вы можете считать их с помощью простого цикла:
1) установите счетчик на ноль.
2) Установите currentChar в '\0'
3) Цикл через каждый символ в отсортированных данных
3.1) является ли currentChar таким же, как и символ цикла?
3.1.1) Да: количество инкрементов
3.1.2) нет: является ли currentChar '\0'?
3.1.2.1) да: увеличения значения счетчика, установить currentChar в петлю характер
3.1.2.2) нет: печать currentChar и счетчик, установить счетчик в 1, набор currentChar в цикле Чаре
4) после цикла, напечатайте currentChar и отсчет