Загрузка...

Вывод русского алфавита в консоль

Тема в разделе C# создана пользователем JMS_inactive5224951 7 июн 2022. 249 просмотров

  1. JMS_inactive5224951
    JMS_inactive5224951 Автор темы 7 июн 2022 1 8 апр 2022
    Что сделать чтобы выводилась буква "ё" после "е"?

    C#
    using System;

    namespace test
    {
    class Program
    {
    static void Main(string[] args)
    {
    int i, n = 32; char[] ch = new char[n]; for (i = 0; i < n; i++)
    {
    ch[i] = Convert.ToChar('а' + i);
    Console.Write(ch[i]);
    Console.Write(" ");

    }

    }
    }
    }
     
  2. GreedNoni
    GreedNoni 7 июн 2022 5 21 апр 2021
    if(ch == 'e'){console.Write("ё");}
     
    7 июн 2022 Изменено
    1. JMS_inactive5224951 Автор темы
      ничего не поменялось
  3. vtlstolyarov
    vtlstolyarov 7 июн 2022 474 8 янв 2022
    В таком виде как ты написал - никак: юникод номер буквы ё - U+0451 и соответственно она дальше чем я - U+044f

    Если напишешь зачем тебе это нужно, то можем подумать над аккуратным решением
     
    1. JMS_inactive5224951 Автор темы
      Для себя
    2. vtlstolyarov
      JMS_inactive5224951, Для себя я бы сделал так (если это будет использоваться именно как char[], поэтому я и спросил зачем нужно):
      C#
      using System;
      using System.Linq;

      public class Program
      {
      private static readonly char[] RussianAlphabetLowercaseLetters = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".ToArray();

      public static void Main(string[] args)
      {
      foreach (var letter in RussianAlphabetLowercaseLetters)
      {
      Console.Write(letter);
      Console.Write(" ");
      }
      }
      }
      потому что если нужно просто перебрать буквы, то будет еще проще
      C#
      private const string RussianAlphabetLowercaseLetters = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
  4. riclomo
    riclomo 18 июн 2022 0 8 фев 2020
    Как заметил vtlstolyarov , буква ё в юникоде расположена дальше, чем буква я. Если говорить в десятичной системе, то код е - 1077, код я - 1103, а код ё - 1105. Если хочешь сохранить свой принцип с перебором, то можно замутить такой костылёк:
    C#
    class Program
    {
    static void Main(string[] args)
    {
    int i, n = 32; char[] ch = new char[n]; for (i = 0; i < n; i++)
    {
    ch[i] = Convert.ToChar('а' + i);
    if(ch[i] == 'е')
    {
    Console.Write("е ё");
    }
    else
    {
    Console.Write(ch[i]);
    }
    Console.Write(" ");
    }

    }
    }
     
    18 июн 2022 Изменено
Загрузка...
Top