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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]