Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Си.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
2.72 Mб
Скачать

Функции для работы со строками

В Си имеется обширная библиотека функций для работы со строками, которая вызывается директивой препроцессора:

#include <string.h>

Рассмотрим функции, входящие в эту библиотеку.

  1. Определение текущей длины строки: int strlen(строка) – возвращает целое число без знака:

char *str;

str = ”jasyk C”;

unsigned int k;

k = strlen(str);

Переменная k примет значение 7.

  1. Первое вхождение одного из символов строки - второго аргумента в строку - первый аргумент: char *strpbrk(строка_1, строка_2) – возвращает указатель на строку:

char str_1[10]=”jasyk C”;

char str_2[10]=”ky”;

char *str;

str = strpbrk(str_1, str_2); // str обязательно указатель!

printf(“\n%s”, str);

На экране появится сообщение:

yk C

  1. Первое вхождение символа - второго аргумента в строку - первый аргумент: char *strchr(строка, символ) – возвращает указатель на строку:

char str_1[50]="programmisty-molodcy";

char c =’m’;

char *str;

str = strchr(str_1, c);

printf(“\n%s”, str);

На экране появится сообщение:

mmisty-molodcy

Если символ не найден, то функция возвращает значение NULL.

  1. Последнее вхождение символа - второго аргумента в строку - первый аргумент: char *strrchr(строка, символ) – возвращает указатель на строку:

char str_1[50]="programmisty-molodcy, ljubjat nas krasavicy";

char c ='s';

char *str;

str = strrchr(str_1, c);

printf(“\n%s”, str);

На экране появится сообщение:

savicy

Если символ не найден, то функция возвращает значение NULL.

  1. Первое вхождение заданной последовательности символов строки - второго аргумента в строку - первый аргумент: char *strstr(строка_1, строка_2) – возвращает указатель на строку:

char str_1[50]="programmisty-molodcy, ljubjat nas krasavicy";

char str_2[10]=”ljub”;

char *str;

str = strstr(str_1, str_2);

printf(“\n%s”, str);

На экране появится сообщение:

ljubjat nas krasavicy

Если последовательность не найдена, то функция возвращает значение NULL.

  1. Соединение строки - первого аргумента и строки - второго аргумента: char *strcat(строка_1, строка_2) – возвращает указатель на строку:

char str_1[50]="programmisty-molodcy,";

char str_2[50]=” ljubjat nas krasavicy";

char *str;

str = strcat(str_1, str_2);

printf(“\n%s”, str);

На экране появится сообщение:

programmisty-molodcy, ljubjat nas krasavicy

  1. Сравнение двух строк: строки - первого аргумента и строки - второго аргумента: int strcmp(строка_1, строка_2) – возвращает

-1, если строка_1 < строка_2,

0, если строка_1 = строка_2,

1, если строка_1 > строка_2

Сравнение производится посимвольно слева направо до первых несовпадающих символов строк.

char str_1[20]=”programmist”;

char str_2[20]=”programmirovanie”;

int k;

k = strcmp(str_1, str_2);

Переменная k примет значение 1, так как первая строка больше (не длиннее!) второй.

  1. Переворот строки: char *strrev(строка) – возвращает указатель на строку:

char str_1[10]=”programma”;

char *str;

str = strrev(str_1);

printf(“\n%s”, str);

На экране появится сообщение:

ammargorp

  1. Копирование одной строки в другую: char *strncpy(строка_1, строка_2, k) – заменяет k первых символов строки_1 на k первых символов строки_2 и возвращает указатель на строку:

char str_1[50]="pervokursnik";

char str_2[50]="vtoroj kurs";

char *str;

int k=5;

str = strncpy(str_1, str_2, k);

printf(“\n%s”, str);

На экране появится сообщение: