Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

Обработка строк с помощью стандартных функций. Поиск и замена

Основные функции работы со строками

     
int getchar(); Возвращает значение символа, введенного с клавиатуры. Ввод завершается нажатием Enter.
gets_s(char *wch); Функция просит вводить пользователя строку, которую она помещает в массив wch, пока пользователь не нажмет Enter.
int strlen (const char *s); Определяет длину строки s. Возвращает количество символов, предшествующих завершающему нулевому символу. Завершающий ноль-символ в длину не включается.
char *strcpy_s(char *s1, const char *s2); Копирует строку s2 с завершающим ноль-символом в строку s1. Возвращает значение s1.
int *strcmp(const char *s1, const char *s2); Функция сравнивает посимвольно строки s1 и s2. Возвращает 0, если строки s1 = s2, значение меньше 0, если строка s1 < s2, и значение больше 0, если s1 > s2.
char *strcat_s(char *s1, const char *s2); Функция добавляет строку s2 к строке s1. Первый символ строки s2 записывается поверх ноль-символа строки s1. Возвращает s1.
char *strncpy_s(char *s1, const char *s2, int n); Функция копирует не более n символов строки s2 в строку s1. Возвращает s1.
char *strncmp(char *s1, const char *s2, int n); Функция сравнивает до n символов строки s1 со строкой s2. Возвращает 0, меньше, чем 0 или больше, чем 0, если s1 соответственно равно, меньше или больше s2.
char *strncat(char *s1, const char *s2, int n); Функция присоединяет первые n символов строки s2 в строку s1. Возвращает s1.
char *strchr(const char *s, int c); Функция проверяет строку s на содержание символа хранящегося в c. Результатом функции является адрес первого вхождения символа c в строку s. Если символ не найден, возвращается NULL.
char *strstr(const char *s1, const char *s2); Функция проверяет строку s1 на содержание подстроки s2. Результатом функции является адрес первого вхождения подстроки s2 в строку s1. Если подстрока не найдена, возвращается NULL.
char *_strset_s(char *s, int ch); Функция заменяет все символы в строке s на символ ch.
char *_strnset_s(char *s, int ch, int n); Функция заменяет первые n символов в строке s на символ ch.
char *_strrev(char *s); Функция меняет порядок следования символов в строке на противоположный (первый символ с последним, второй символ с предпоследним и т.д.).

 

char *strlwr(char *s); Конвертирует строку к нижнему регистру (т.е. переводит строку в строчные символы)
char *strupr(char *s); Конвертирует строку к верхнему регистру (т.е. переводит строку в прописные символы).

 

Обработка строк с помощью стандартных функций. Поиск и замена

Все задачи оформлять через функции или процедуры! При решении задач использовать библиотечные функции работы со строками.

1. Дано целое число N (> 0) и строка S. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы «.» (точка).

2. Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2 (в указанном порядке).

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

4. Дан символ C и строки S, S0. Перед каждым вхождением символа C в строку S вставить строку S0.

5. Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0.

6. Даны строки S и S0. Проверить, содержится ли строка S0 в строке S. Если содержится, то вывести True, если не содержится, то вывести False.

7. Даны строки S и S0. Найти количество вхождений строки S0 в строку S.

8. Даны строки S и S0. Удалить из строки S первую подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

9. Даны строки S и S0. Удалить из строки S последнюю подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

10. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.

11. Написать функцию, в которую передается два адреса строк типа char, инициализированную вводом с клавиатуры (текст русский).

В функции:

– соединить строки в одну строку;

– между символами строки вставить пробелы;

– возвратить модифицированную строку в функцию main().

Распечатать строку.

Например.

Исходные строки – «На улице », «противная погода!»

Результирующая строка – «На улице противная погода!»