Основные функции работы со строками
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().
Распечатать строку.
Например.
Исходные строки – «На улице», «противная погода!»
Результирующая строка – «На улице противная погода!»