Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПРОГР.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
1.67 Mб
Скачать
    1. Функции обработки строк

Функция

char *strcpy(char *str1, const char *str2);

используется для копирования содержимого строки str2 в строку str1. Аргумент str2 должен быть указателем на строку, оканчивающуюся нулевым символом. Функция strcpy() возвращает указатель на конец строки str1. Прототип функции находится в файле string.h.

Функция

char *strcat(char *str1, const char *str2);

конкатенирует (соединяет в цепочку) строку str1 и копию строки str2. В конце модифицированной строки str1 функция устанавливает нулевой символ. Нулевой символ, первоначально завершавший строку str1, замещается первым символом строки str2. Строка str2 остается без изменений. Функция strcat() возвращает str1.

Следует иметь в виду, что функция не производит проверки границ, пожтому программист должен позаботиться о том, чтобы строка str1 была достаточно длинной и могла вместить кроме своего первоначального содержания еще и содержание строки str2.

Прототип находится в string.h.

Функция

char *strchr(const char *str, int ch);

возвращает указатель на первое вхождение символа ch в строку, на которую указывает str. Если символ ch не найден, возвращается NULL. Прототип находится в string.h.

П р и м е р. Следующая программа выведет строку «is a test»:

char *p;

p = strchr(“this is a test”);

printf(p);

return 0;

}

Функция

int strcmp(const char *str1, const char *str2);

осуществляет лексикографическую проверку двух строк, оканчивающихся нулевыми символами, и возвращает целое число со следующим значением:

Число Значение

Меньше 0 str1 меньше str2

  1. str1 равна str2

Больше 0 str1 больше str2

Прототип находится в string.h.

Функция

size_t strcspn(const char *str1, const char *str2);

возвращает количество символов в начале строки с указателем str1, среди которых нет ни одного символа, входящего в строку с указателем str2. Другими словами, для строки str1 функция strcspn() возвращает значение индекса первого символа из числа символов, входящих в строку str2. Прототип находится в string.h.

П р и м е р. Следующая программа выводит число 8:

#include <stdio.h>

#include <string.h>

int main(void)

{

int len;

len = strcspn(“this is a test”, “ab”);

printf(“%d”, len);

return 0;

}

Функция

char *strdup(const char str);

выделяет память, достаточную для хранения дубликата строки, на которую указывает str, а затем производит копирование этой строки в выделенную область и возвращает на нее указатель. Прототип находится в string.h.

П р и м е р. Следующий фрагмент дублирует строку str:

char str[80], *p;

strcpy(str, “this is a test”);

p = strdup(str);

Функция

int stricmp(const char *str1, const char *str2);

осуществляет лексикографическое сравнение двух строк, оканчивающихся нулевыми символами. Функция не делает различия между буквами верхнего и нижнего регистров. Функция возвращает целое число, зависящее от результата следующим образом:

Число Значение

Меньше 0 str1 меньше str2

  1. str1 равна str2

Больше 0 str1 больше str2

Прототип находится в string.h.

П р и м е р. Следующая программа сравнивает имена двух файлов, заданных в командной строке:

#include <stdio.h>

#include <string.h>

int main(int argc, char *argv[ ])

{

if (!stricmp(argv[1], argv[2]))

printf(“Имена файлов одинаковы.\n”);

else printf(“Имена файлов различны\n”);

return 0;

}

Функция

size_t strlen(const char *str);

возвращает длину строки, оканчивающуюся нулевым символом, на которую указывает str. При определении длины строки нулевой символ не учитывается. Прототип находится в string.h.

Функция

char *strlwr(char *str)

преобразует символы строки, на которую указывает str, в символы нижнего регистра. Функция возвращает str.

Функция

char *strrev(char *str);

Изменяет на обратную последовательность символов в строке (за исключением нулевого символа в конце строки), на которую указывает str. Функция возвращает str. Прототип находится в string.h.

Функция

char *strstr(const char *str1, const char *str2);

возвращает указатель на первое вхождение в строку, на которую указывает str1, строки, на которую указывает str2. Если совпадений не обнаружено, возвращается NULL. Прототип находится в string.h.

П р и м е р. Следующая программа выведет строку “it is a test”:

#include <stdio.h>

#include <string.h>

int main(void)

{

char *p;

p = strstr(“this is a test”, “is”);

printf(p);

return 0;

}

Функция

char *strupr(char *str);

преобразует символы строки, на которую указывает str, в символы верхнего регистра. Функция возвращает str. Прототип находится в string.h.

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