Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная для Вт-207 (Си).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
353.79 Кб
Скачать

Тема №6 Работа с символьными данными

ОСНОВНЫЕ СВЕДЕНИЯ

Символьная константа - это символ (единственный), заключенный в одиночные кавычки, как, например, 'Х'. Значением символьной константы является численное значение этого символа в машинном представлении набора символов. Все символы упорядочены в соответствии с принятым в ПК коде (например ASCII). При этом порядковый но­мер символов называется кодом (например, код латинского символа 'А ' равен 65; символа '3' равен 51). Для символьных данных не определены никакие арифметические операции, но они могут сравниваться по своим кодам, участвовать в чтении, печати, операторах присваивания.

Строка - это последовательность (массив) символов, заключенная в двойные кавычки, заканчивающаяся нуль-символом (\0 – символ с кодом равным нолю). По положению нуль-символа определяется фактическая длина строки. Например, длина строки char text[ ] = "Моя программа!" равна 14 байт (включая пробел).

Для форматного ввода и вывода символьных констант используется спецификатор %с, строк - %s и специальные функции: getchar(),gets()- ввод и putchar(), puts()-вывод. Библиотека Си содержит функции обработки строк, прототипы которых определяются в заголовочном файле string.h. Например:

strlen(str) – определяет длину строки str;

strcat(str1,str2) - сцепление строк в порядке их перечисления;

strncat(str1,str2,kol) – приписывает kol символов строки str2 к строке str1;

strcmp(str1,str2) – сравнивает две строки str1 и str2 и возвращает 0, если они одинаковы; результат отрицателен, если str1<str2 и положителен, если str1>str2;

strncmp(str1, str2, kol) – сравниваются части строк str1 и str2 из kol символов. Результат равен 0, если они одинаковы.

strcpy(str1,str2) – копирует строку str2 в строку str1.

Рассмотрим пример:

#include <stdio.h>

#include <conio.h>

#include <string.h>

main ( )

{ char gwords [10] [40], temp [40];

int i=0;

printf (“Введите 10 слов, начинающихся с д: \n”);

while ( i < 10 )

{ gets (temp);

if (temp [0] != ‘д’) // проверка первого символа

printf (“ %s не начинается с д! \n”, temp);

else { strcpy (gwords [i], temp); i++;}

}

puts (“Следующие слова соответствуют условию:”);

for (i=0; i< 10; i++) puts (gwords [i] );

getch();

return 0;

}

Вводятся слова, сравнивается первый символ, если это не 'д', то вводится следующее слово, иначе слово копируется в новый массив слов gwords.

СПИСОК ЗАДАЧ

  1. Дана строка, подсчитать сколько раз встречается буква a.

  2. Даны натуральное число n, символы S1, S2, ..., Sn. Подсчитать, сколько раз среди данных символов встречается буква b.

  3. Даны натуральное число n, символы S1, S2, ..., Sn. Подсчитать:

а) сколько раз среди данных символов встречается символ "+" и сколько раз символ "*";

б) общее число вхождений символов "+", "-" и "*" в последовательность S1, S2, ..., Sn.

  1. Дана последовательность S1, S2, ..., Sn, заменить в ней:

а) все восклицательные знаки точками;

б) каждую точку многоточием;

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Выяснить, имеются ли в последовательности S1, S2, ..., Sn такие члены последовательности Si и Si+1, что Si - это запятая, Si+1 - это тире.

  2. Даны натуральное число n, символы S1, S2, ..., Sn. Получить первое натуральное i, для которого каждый из символов Si и Si+1, совпадают с буквой А. Если такой пары в последовательности S1, S2, ..., Sn нет, то ответом должно быть число 0.

  3. Даны натуральное число n, символы S1, S2, ..., Sn. Известно что среди S1, S2, ..., Sn есть по крайней мере одна запятая. Найти такое натуральное i, что:

а) Si - первая по порядку запятая;

б) Si - последняя по порядку запятая.

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Преобразовать удалив каждый символ "*" и повторив каждый символ отличный от "*".

  2. Даны натуральное число n, символы S1, S2, ..., Sn, среди которых есть двоеточие.

а) получить все символы, расположенные до первого двоеточия включительно.

б) получить все символы, расположенные после первого двоеточия включительно.

  1. Даны натуральное число n, символы S1, S2, ..., Sn.

а) подсчитать наибольшее количество идущих подряд пробелов;

б) выяснить, верно ли, что в последовательности S1, S2, ..., Sn имеются пять идущих подряд букв С.

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами.

а) подсчитать количество букв "а" в последнем слове данной последовательности.

б) найти количество слов, начинающихся с буквы "с".

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами.

а) найти количество слов, у которых первый и последний символы совпадают.

б) подсчитать количество слов в данной последовательности.

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами.

а) найти какое-нибудь слово, начинающиеся с буквы "а".

б) преобразовать данную последовательность, заменяя всякое вхождение слова "это" на слово "то".

  1. Даны натуральное число n, символы S1, S2, ..., Sn. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами.

а) удалить все символы, не являющиеся буквами.

б) заменить все малые буквы одноимёнными большими.

  1. Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S.

  2. Дана строка. Подсчитать количество содержащихся в ней цифр.

  3. Даны натуральное число n, символы S1, S2, ..., Sn. Найти самое длинное слово в предложении.

  4. Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1.

  5. Даны натуральное число n, символы S1, S2, ..., Sn. Заменить заданное слово предложения на другое слово.

  6. Даны натуральное число n, символы S1, S2, ..., Sn. Найти в предложении слова, которые начинаются на одну и ту же букву.

  7. Даны натуральное число n, символы S1, S2, ..., Sn. Напечатать предложение, удалив из него повторное вхождение слов.

  8. Даны натуральное число n, символы S1, S2, ..., Sn. Напечатать различные слова предложения, указав для каждого из них число его вхождений.

  9. Даны натуральное число n, символы S1, S2, ..., Sn. Преобразуйте строку, заменив в ней каждую точку многоточием.

  10. Дана строка. Преобразовать все строчные русские буквы в прописные.

  11. Дана последовательность S1, S2, ..., Sn, заменить в ней каждую из групп стоящих рядом точек одной точкой;