Всем привет! Я только начал изучать C# и в моём курсе обучения попалась такая вот задача, но к сожалению я не могу написать данную программу и поэтому прошу помощи у вас. Помогите пожалуйста с написанием данной программы:
"Числовые значения символов нижнего регистра в коде ASCII отличаются от значении символов верхнего регистра на величину 32. Следовательно, для конвертирования символа нижнего регистра и символ верхнего регистра необходимо вычесть из его значения число32. Используя эту информацию, напишите программу, которая читает символы, вводимые с клавиатуры. Программа должна конвертировать все символы нижнего регистра в символы верхнего регистра и наоборот, выводя на экран результат. При этом все остальные символы остаются неизменными. Программа должна прекращать работу, когда пользователь вводит символ точки (.). В завершение работы программа должна вывести информацию о количестве измененных символов."
Вопросы:
Заранее спасибо!
Обновление
Написал код рабочей программы, но мне не нравится что каждый символ результата отображается в новой строке.
Вопрос: Как отобразить символы результата в одной строке? Спасибо.
код программы:
using System;
class Ascii
{
public static void Main()
{
int down = 0;
int up = 0;
char symbolChar = ' ';
Console.WriteLine("Vvedite text ispolzuya malenkie i bolshie bukvi");
Console.WriteLine("\n");
while (symbolChar != '.')
{
var symbol = Console.Read();
if (symbol >= 65 && symbol <= 90)
{
symbol += 32;
++down;
}
else if (symbol >= 97 && symbol <= 122)
{
symbol -= 32;
++up;
}
symbolChar = Convert.ToChar(symbol);
Console.Write(symbolChar);
}
Console.WriteLine("\n");
Console.WriteLine("Kolichestvo izmenennih simvolov " + (down + up));
}
}
Вот вам набросок того, что должно быть.
class Program
{
//для подсчета кол-ва измененных символов
private static int _changedSigns;
//для подсчета кол-ва введенных символов
private static int _inputedSigns;
static void Main(string[] args)
{
//вводимый символ
ConsoleKeyInfo key;
Console.WriteLine("Введите символ: ");
do
{
//считываем
key = Console.ReadKey();
//увеличиваем счетчик введенных
_inputedSigns++;
string output = AnalizeAndChangeKey(key);
Console.WriteLine();
Console.WriteLine($"Получилось: {output}");
Console.WriteLine("Введите еще символ: ");
} while (key.Key != ConsoleKey.OemPeriod);
Console.WriteLine();
Console.WriteLine(new string('-', 10));
Console.WriteLine($"Всего было введено символов: {_inputedSigns}");
Console.WriteLine($"Всего было изменено символов: {_changedSigns}");
Console.ReadKey();
}
private static string AnalizeAndChangeKey(ConsoleKeyInfo key)
{
//для результата
string result = String.Empty;
//если символ является буквой
if (char.IsLetter(key.KeyChar))
{
int number = 0;
char cRes;
if (char.IsUpper(key.KeyChar))
{
//вычисляем по условию задачи
number = key.KeyChar + 32;
//преобразуем
cRes = (char)number;
}
else // буква нижнего регистра
{
//вычисляем по условию задачи
number = key.KeyChar - 32;
//преобразуем
cRes = (char)number;
}
//в результат
_changedSigns++;
result = cRes.ToString();
}
else
{
//выводим без преобразований
result = key.KeyChar.ToString();
}
return result;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Заголовок скорей всего не передает сути вопросаИмеется два интерфейса:
ПриветствуюМожно ли использовать перечисление StringSplitOptions
Допустим есть форма на сайте, в нее вбивается телефон, затем по нажатию кнопки на указанный номер отправляется сообщение