Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Си.doc
Скачиваний:
38
Добавлен:
27.03.2016
Размер:
2.8 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);

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