Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek11.doc
Скачиваний:
14
Добавлен:
15.11.2018
Размер:
139.78 Кб
Скачать

11.3. Функции из библиотеки cstring

Описания некоторых наиболее популярных функций из библиотеки с заголовоч­ным файлом <cstring> приведены в табл. 14.1. Для их использования в начало файла программы нужно включить директиву

#include <cstring>

Мы уже рассматривали функции strcpy и strcmp, которые, как и другие функции из библиотеки cstring, не требуют директивы, подобной следующей:

using namespace std;

Однако в других частях программы она может быть нужна.

Еще одной удобной и полезной функцией является strlen, возвращающая длину заданной строки. Например, strlen("dobedo") возвращает 6, поскольку в строке "dobedo" содержится шесть символов.

Функция strcat выполняет конкатенацию двух строк С; иными словами, она соз­дает более длинную строку путем слияния двух исходных строк, расположенных одна за другой. Первым ее аргументом должна быть строковая переменная С. Вторым может быть любое выражение, возвращающее строку С, скажем, строка в двойных кавычках. В качестве примера рассмотрим следующий код:

char string_var[20] = "The rain";

strcat(string_var, "in Spain");

Он изменяет значение переменной string_var, присваивая ей строку "The rainin Spain". Как видите, при слиянии строк нужно внимательно следить за расстанов­кой пробелов (между словами rain и in, скорее всего, должен быть пробел).

Просмотрев табл. 14.1, вы узнаете, что во многих, хотя и не во всех, компиляторах C++ имеются более защищенные версии функций strcpy, strcat и strcmp. Они име­ют три аргумента и содержат дополнительную букву n (strncpy, strncat и strncmp).

Таблица 11.1. Некоторые стандартные функции для работы со строками С из библиотеки cstring

Функция

Описание

Предупреждение

strсру(строковая_переменная, строка)

Копирует строковое значение С, заданное в аргументе строка, в строковую переменную С

строковая_переменная

Не проверяет, поместится ли значение строка в переменную

строковая_переменная

strnсру(строковая_переменная, строка,лимит)

Похожа на strcpy,

но копирует максимум

лимит символов

Если значение лимит выбрано правильно, эта функция надежнее двухаргументной функции strcpy. Реализована не во всех версиях C++

strсat(строковая_переменная, строка)

Выполняет конкатенацию строк С, добавляя значение строка в конец строки, хранящейся в переменной

строковая_переменная

Не проверяет, поместится ли объединенная строка в переменную

строковая_переменная

strnсat(строковая_переменная, строка,лимит)

Похожа на strcat,

но добавляет максимум

лимит символов

Если значение лимит

выбрано верно, эта функция

надежнее двухаргументной

функции strcat.

Реализована

не во всех версиях C++

strlеn(строка)

Возвращает целое число, равное длине строки строка. (Нуль-символ '\0' не учитывается.)

strcmp (строка_1, строка_2)

Возвращает 0, если строка_1 и строка_2 одинаковы. Возвращает отрицательное значение, если строка_1 меньше, чем строка_2; положительное значение, если строка_1 больше, чем строка_2. При сравнении используется лексикографический порядок строк

Если строка_1 и строка_2 одинаковы, данная функция возвращает 0, который преобразуется в false. Обратите внимание, что это значение обратно тому, которое естественно было бы ожидать от функции

strncmp (строка_1, строка_2,лимит)

Похожа на strcmp,

но добавляет максимум

лимит символов

Если значение лимит выбрано правильно, эта функция надежнее двухаргументной функции st rcrnp. Реализована не во всех версиях C++

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