Лабораторная работа № 9 обработка текстовой информации
1 Цель и порядок работы
Цель работы - изучить операторы, используемые при организации программ обработки строковых переменных, получить практические навыки в составлении программ.
Порядок выполнения работы:
ознакомиться с описанием лабораторной работы;
получить задание у преподавателя по вариантам;
разработать алгоритм решения задачи;
написать программу, ввести программу, отладить и выполнить ее на ЭВМ;
оформить отчет.
2 Общие сведения
С точки зрения практического программирования одним из самых важных его аспектов является обработка текстовой информации, и любой современный язык программирования имеет для решения задач данного типа свои средства. Поскольку любой текст можно рассматривать и как последовательность отдельных символов и как строку, то функциональные возможности наиболее современного языка С# должны быть достаточно полны для выполнения разнообразных преобразований всех видов текстовой информации. Типы данных в С# позволяют работать и с отдельными символами, и с массивами символов, и с различного типа строками. Рассмотрим эти возможности.
2.1 Символьный тип char
Символьный тип char базируется на стандартном классе Char библиотеки .NET из пространства имен System. Он является встроенным типом языка и предназначен для хранения символов в Unicode.
Класс System.Char объединяет в себе целый ряд методов (табл. 1), которые позволяют намного облегчить написание программ обработки символьной информации. Набор методов этого класса позволяют распознавать символы различного назначения и выполнять над ними распространенные операции.
Таблица 1 - Основные методы класса System.Char
|
Метод |
Пояснение |
1 |
GetNumericValue |
Возвращает числовое значение символа, если он является цифрой, и -1 в противном случае |
2 |
GetUnicodeCategory |
Возвращает категорию Unicodе-символа |
3 |
IsControl |
Возвращает truе, если символ является управляющим |
4 |
IsDigit |
Возвращает truе, если символ является десятичной цифрой |
5 |
IsLetter |
Возвращает truе, если символ является буквой |
6 |
IsLetterOrDigit |
Возвращает truе, если символ является буквой или цифрой |
7 |
IsLower |
Возвращает truе, если символ задан в нижнем регистре |
8 |
IsNumber |
Возвращает truе, если символ является числом (десятичным или шестнадцатеричным) |
9 |
IsPunctuation |
Возвращает truе, если символ является знаком препинания |
10 |
IsSeparator |
Возвращает truе, если символ является разделителем |
11 |
IsUpper |
Возвращает truе, если символ записан в верхнем регистре |
12 |
IsWhiteSpace |
Возвращает truе, если символ является пробельным (пробел,перевод строки и возврат каретки) |
13 |
Раrse |
Преобразует строку в символ (строка должна состоять из одного символа) |
14 |
ToLower |
Преобразует символ в нижний регистр |
15 |
ТоUрреr |
Преобразует символ в верхний регистр |
16 |
МахValuе, МinValuе |
Возвращают символы с максимальным и минимальным кодами (эти символы не имеют видимого представления) |
Пример 1. Целью данного примера является демонстрация возможностей некоторых приведенных выше методов класса System.Char.
Листинг 1
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char q;
do
{
Console.WriteLine( "Введите символ: ");
q = char.Parse (Console.ReadLine());
if (char.IsLetter(q)) Console.WriteLine("Буква");
if (char.IsUpper(q)) Console.WriteLine("Верхний рег.");
if (char.IsLower(q)) Console.WriteLine("Нижний рег.");
if (char.IsControl(q)) Console.WriteLine("Управляющий");
if (char.IsNumber(q)) Console.WriteLine("Число");
if (char.IsPunctuation(q)) Console.WriteLine("Разделитель");
}
while (q!='/');
}
}
}
В программе в цикле с постусловием запрашивается символ и далее с помощью ряда условных операторов определяется: к какой категории введенный символ относится. Выход из цикла организован по символу “/”.
Результаты работы программы:
