Лекция 7
11.0. Символы и строки
ПК может обрабатывать не только числовую информацию, но и символьную. Символьная информация может быть представлена:
-
Отдельными символами
-
Строками
11.1. Символы
Для хранения и обработки отдельных символов используются переменные типа Char.
Тип представляет собой набор символов в кодировке Unicode, в котором каждый символ кодируется 16-разрядным двоичным числом (2 байтами).
К символам относятся:
-
Буквы русского и латинского алфавитов;
-
Цифры;
-
Знаки препинания;
-
Специальные символы (пробел, <Enter>-“новая строка”);
Объявление символьных данных:
Char Имя переменной; //переменная без инициализации
Char Имя переменной = 'значение'; // переменная с инициализацией
Const char Имя переменной = 'значение'; // константа с инициализацией
Пример1:
char sim; // Символьная переменная без инициализации
char q = ' * '; // Символьная переменная с инициализацией
const char s= ' х '; // Символьная константа
Символьная переменная может получить значение в программе в результате выполнения операции присвоения.
Пример2:
char C, S ; // переменные без инициализации
. . . . . . . .
С = ' * ' ; // переменной С присваивается значение *
S = ' a '; // переменной S присваивается значение a
. . . . . . . .
Задача1. Выполняет программу диалога: “Вы хотите научиться программировать?”
static void Main(string[] args)
{
char s;
Console.Write("Вы хотите научиться программировать? Введите Y или N: ");
s = Convert.ToChar(Console.ReadLine());
Console.WriteLine("Ваш ответ: "+ s);
Console.ReadKey();
}
11.2. Строки
Последовательность символов произвольной длины называется строкой. Для обработки и хранения символов можно использовать массив символов или переменные типа String.
Объявление строковых данных:
String Имя переменной; //переменная без инициализации
String Имя переменной =''значение''; //переменная с инициализацией
Const String Имя переменной = ''значение''; // константа с инициализацией
Пример3:
string s; // Строковая переменная без инициализации
string s1 = "Привет"; // Строковая переменная с инициализацией
const string s2 = "Я студент"; // Строковая константа
Строковая переменная может получить значение в программе в результате выполнения операции присвоения.
Пример4:
string s1, s2 ; // переменные без инициализации
. . . . . . . .
s1 = "Я студент"; // переменной s1 присваивается значение "Я студент"
s2= "Привет от меня"; // переменной s2 присваивается значение "Привет от меня"
. . . . . . . .
Задача2. Выполняет программу диалога: “Вы хотите научиться программировать?”
static void Main(string[] args)
{
string s;
Console.Write("Вы хотите научиться программировать? ");
s = Convert.ToString(Console.ReadLine());
Console.WriteLine("Ваш ответ: " + s);
Console.ReadKey();
}
Результат выполнения строкового выражения является строка символов.
Для строк применимы операции:
-
конкатенация (добавление к первой строке второй) // Сцепление строк
-
сравнение. // По длине строки
Задача3. Объединение (конкатенация) двух строк.
static void Main(string[] args)
{
string c, h, ch; char q = '!';
Console.Write("Введите 1 строку ");
c = " C# ";
Console.WriteLine(c);
Console.Write("Введите 2 строку ");
h = " Express ";
Console.WriteLine(h);
ch = c + h + q;
Console.WriteLine();
Console.WriteLine("Ответ: " + ch);
Console.ReadKey();
}
Задача4. Сравнить содержимое двух строк
static void Main(string[] args)
{
string s1, s2;
Console.Write("Введите 1 строку ");
s1 = Convert.ToString(Console.ReadLine());
Console.WriteLine();
Console.Write("Введите 2 строку ");
s2 = Convert.ToString(Console.ReadLine());
Console.WriteLine();
if (s1 == s2) Console.WriteLine("Строки равные");
else Console.WriteLine("Строки не равные");
Console.ReadKey();
}
Переменную типа String можно сравнивать с другой переменной типа String.
Строки сравниваются посимвольно, начиная с 1 символа:
-
Если все символы сравниваемых строк одинаковые, то такие строки считаются равными, в противном случае – не равными. Для равенства двух строк применяют операторы == или !=.
-
Операторы отношения >, <, >=, <= c переменными типа String не работают, для их использования необходимо преобразовать строковую переменную в длину строки. Длина строки вычисляется с помощью метода s.Length;
-
Получить доступ к отдельному символу строки можно, указав его номер в квадратных скобках после имени переменной (строки).
Например, s[ i ], где i – номер символа строки s.
Задача5. Сравнить содержимое двух строк по их длине:
string s1, s2;
Console.Write("Введите 1 строку: ");
s1 = Convert.ToString(Console.ReadLine());
Console.WriteLine();
Console.Write("Введите 2 строку: ");
s2 = Convert.ToString(Console.ReadLine());
Console.WriteLine();
if (s1.Length > s2.Length) Console.WriteLine("1 Строка длиннее");
else if (s2.Length > s1.Length) Console.WriteLine("2 Строка длиннее");
else Console.WriteLine("Строки равные");
Console.ReadKey();
11.3. Методы обработки строк
Наиболее частые методы обработки строк:
Наименование |
Выполняемые функции |
string ToLower() |
Возвращает строчную версию вызывающей строки |
string ToUpper() |
Возвращает прописную версию вызывающей строки |
string Copy(string S) |
Возвращает копию строки S |
Задача6. Вывести прописную и строчную версии строки:
static void Main(string[] args)
{
String s1, s11, s12;
Console.Write("Введите строку: ");
s1 = Convert.ToString(Console.ReadLine());
Console.WriteLine();
s11 = s1.ToLower();
s12 = s1.ToUpper();
Console.WriteLine("Строчная версия строки: " + s11);
Console.WriteLine();
Console.WriteLine("Прописная версия строки: " + s12);
Console.ReadKey();
}
Задача7. Вывести длину строки и ее копию.
static void Main(string[] args)
{
string s1, s2;
s1 = "В программировании используется язык C#";
Console.WriteLine();
Console.WriteLine("s1: " + s1);
s2 = string.Copy(s1);
Console.WriteLine();
Console.WriteLine("s2: " + s2);
Console.WriteLine();
Console.WriteLine("Длина строки s1: " + s1.Length);
Console.ReadKey();
}
8.3. Строковые функции и процедуры