Загрузка...

Output of the Russian alphabet to the console

Thread in C# created by JMS_inactive5224951 Jun 7, 2022. 260 views

  1. JMS_inactive5224951
    JMS_inactive5224951 Topic starter Jun 7, 2022 1 Apr 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 Jun 7, 2022 5 Apr 21, 2021
    if(ch == 'e'){console.Write("ё");}
     
    1. JMS_inactive5224951 Topic starter
      ничего не поменялось
  3. vtlstolyarov
    vtlstolyarov Jun 7, 2022 468 Jan 8, 2022
    В таком виде как ты написал - никак: юникод номер буквы ё - U+0451 и соответственно она дальше чем я - U+044f

    Если напишешь зачем тебе это нужно, то можем подумать над аккуратным решением
     
    1. JMS_inactive5224951 Topic starter
      Для себя
    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 Jun 18, 2022 0 Feb 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(" ");
    }

    }
    }
     
Top
Loading...