Задача: напишите программу на C#, которая удаляет символ в заданной позиции из заданной строки. Заданная позиция находится в диапазоне 0
до [длина строки -1]
включительно.
Что необходимо знать
Для решения этой лабораторной работы нам потребуются следующие знания основ C#:
- общие сведения о строках в C#
- методы работы со строками в C#
- о логических операторах в C#
- о типах данных в C#
Алгоритм решения
Алгоритм работы нашего приложения можно представить следующим образом:
- Пользователь вводит строку. Полученное значение присваивается переменной
str
- Пользователь вводит целое число — позицию символа в строке, который необходимо удалить. Полученное значение присваиваем переменной
x
- Если переменная
x
находится в диапазоне от0
до[длина строки -1]
, то удаляем символ изstr
и выводим результат - Если переменная
x
выходит за пределы диапазона, то выводим пользователю сообщение об ошибке - Конец работы программы
Решение лабораторной работы
using System; namespace LabRab_7 { internal class Program { static void Main(string[] args) { Console.WriteLine("Введите строку:");//просим пользователя ввести строку string str = Console.ReadLine(); //присваиваем введенное значение переменной Console.WriteLine("Введите номер удаляемого символа:");//просим пользователя ввести позицию символа int x = Convert.ToInt32(Console.ReadLine());//присваиваем введенное значение переменной if ((x >= 0) && (x <= str.Length)) //проверяем вхождение x в диапазон { str = str.Remove(x, 1); //удаляем один символ из строки, находящийся в позиции x Console.WriteLine(str); //выводим результат } else //введено неверное значение Console.WriteLine("Ошибка: неверно задана позиция символа в строке"); } } }
Результат работы приложения:
Привет
Введите номер удаляемого символа:
1
Пивет
или
Привет
Введите номер удаляемого символа:
11
Ошибка: неверно задана позиция символа в строке
Улучшения
В качестве улучшения мы можем дописать программу так, чтобы работа не прерывалась в случае, если пользователь вводит неверное значение позиции символа, а приложения вновь запрашивало это значение от пользователя.
using System; namespace LabRab_7 { internal class Program { static void Main(string[] args) { Console.WriteLine("Введите строку:");//просим пользователя ввести строку string str = Console.ReadLine(); //присваиваем введенное значение переменной int x; do //тело цикла выполнится минимум один раз или будет выполняться до тех пор пока условие не станет false { Console.WriteLine("Введите номер удаляемого символа:");//просим пользователя ввести позицию символа x = Convert.ToInt32(Console.ReadLine());//присваиваем введенное значение переменной } while ((x < 0) || (x > str.Length)); str = str.Remove(x, 1); //удаляем один символ из строки, находящийся в позиции x Console.WriteLine(str); //выводим результат } } }
Пример работы улучшенного приложения
Привет
Введите номер удаляемого символа:
11
Введите номер удаляемого символа:
56
Введите номер удаляемого символа:
1
Пивет
Итого
Сегодня мы выполнили еще одну лабораторную работу, касающуюся основ C#. Для выполнения работы нам потребовались знания о строках в C#, а для улучшения разработанного приложения — знания о работе циклов в C#.