Изменение регистра введенных букв - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Есть задание: Числовые значения символов нижнего регистра в коде ASCII отличаются от значении символов верхнего регистра на величину 32. Следовательно, для конвертирования символа нижнего регистра и символ верхнего регистра необходимо вычесть из его значения число 32. Используя эту информацию, напишите программу, которая читает символы, вводимые с клавиатуры. Программа должна конвертировать все символы нижнего регистра в символы верхнего регистра и наоборот, выводя на экран результат. При этом все остальные символы остаются неизменными. Программа должна прекращать работу, когда пользователь вводит символ точки (.). В завершение работы программа должна вывести информацию о количестве измененных символов. Такой код я навоял:
using System;
class BigLetter
{
    public static void Main()
    {
        int e, count = 0;
        char i;
        for (; ;)
        {
            Console.WriteLine("Введите символ");
            e = Console.Read();
 
            if (e >= 65 && e <= 90)
            {
                e += 32;
                i = (char)e;
                Console.WriteLine(i);
 
            }
            else if (e >= 97 && e <= 122)
            {
                e -= 32;
                i = (char)e;
                Console.WriteLine(i);
            }
            else if (e == 46)
            {
                break;
            }
            else
            {
                i = (char)e;
                Console.WriteLine(i);
            }
            count++;
            
        }
        Console.WriteLine("Всего введено " + count + " символов");
    }
    
}
Не могу понять в чем ошибка. почему при вводе символа цикл делает по три прохода? Счетчик соответственно утраивается.

Решение задачи: «Изменение регистра введенных букв»

textual
Листинг программы
using System;
class BigLetter
{
    public static void Main()
    {
        int e, count = 0;
        char i;
        do
        {
            Console.WriteLine("Введите символ");
            do
            {
                e = Console.Read();
                i = (char)e;
            } while (i == '\n' | i == '\r');
 
 
 
            if (e >= 65 && e <= 90)
            {
                e += 32;
                i = (char)e;
                Console.WriteLine(i);
                count++;
 
            }
            else if (e >= 97 && e <= 122)
            {
                e -= 32;
                i = (char)e;
                Console.WriteLine(i);
                count++;
            }
            else if (e == 46)
            {
                break;
            }
            else
            {
                i = (char)e;
                Console.WriteLine(i);
            }
           
 
        } while (e != 46);
        Console.WriteLine("Всего введено " + count + " символов");
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы