Пример
Функция strcat
Пример
Функция strlen
Определение длины строки
Пример
Функция strncpy
Пример
Функция strdup
Пример
char name[41];
strcpy(name, "Borland C++ 5");
Переменная name содержит строку "Borland C++ 5".
Функция strdup копирует одну строку в другую, при этом отводит необходимое количество памяти для целевой строки.
Прототип функции strdup таков:
char* strdup(const char *source);
Функция копирует строку source и возвращает указатель на строку-копию.
char *string1 = "Монархия в Испании";
char *string2;
string2 = strdup(string1);
После того, как будет отведено необходимое количество памяти для строки string2, строка string1будет скопирована в строку string2.
Библиотека строковых функций предлагает также функцию strncpy, копирующую заданное количество символов из одной строки в другую.
Прототип функции strncpy таков:
char * strncpy(char *target, const char *source, size_t num);
Функция копирует num символов из строки source в строку target. Функция не выполняет ни усечение, ни заполнение строки.
|
|
char str1[] = "Pascal";
char str2[] = "Hello there";
strcnpy(strl, str2, 5);
Переменная strl содержит строку "Hellol". Заметьте, что символ ‘l’ строки-приемника, следующий за скопированной частью строки, сохранился.
При работе со строками часто бывает нужно знать длину строки.
Функция strlen возвращает количество символов в строке, в которое не включается нуль-терминатор.
Прототип функции strncpy таков:
size_t strlen (const char *string),
Функция strlen возвращает длину строки string. size_t — это имя, приписанное типу unsigned int оператором typedef.
char str[] = "1234567890";
size_t i;
i = strlen(str),
Переменной i будет присвоено значение 10.
Конкатенация строк
Операция конкатенации используется достаточно часто, когда новая строка получается объединением двух или более строк.
Присоединить одну строку к другой можно функцией strcat.
Конкатенация строк означает их последовательное присоединение друг к другу.
Прототип функции strcat таков:
char *strcat(char *target, const char *source);
Функция добавляет к содержимому целевой строки содержимое строки-источника и возвращает указатель на целевую строку. Функция предполагает, что целевая строка может вместить содержимое объединенной строки.
char string[81];
strcpy(string, "Turbo");
strcat (string, " C++");
Переменная string содержит строку "Turbo C++".
Функция strncat добавляет к содержимому целевой строки указанное количество символов из строки-источника.
Прототип функции strcat:
char *strncat(char *target, const char *source, size_t num);
Функция добавляет к содержимому целевой строки num символов из строки-источника и возвращает указатель на целевую строку.
char strl[81] = "Hello I am ";
char str2[41] = "Keith Thompson";
|
|
strncat(strl, str2, 5);
Переменная strl теперь содержит строку "Hello I am Keith".
Пример использования функций getline, strlen и strcat в файле List7_4.cpp (исходный код программы STRING.CPP). Программа выполняет следующие задачи:
· Предлагает вам ввести строку; ввод не должен превышать 40 символов
· Предлагает вам ввести вторую строку; ввод не должен превышать 40 символов
· Выводит число символов, содержащихся в каждой строке
· Присоединяет вторую строку к первой
· Выводит результат конкатенации
· Выводит длину объединенной строки
· Предлагает вам ввести символ для поиска
· Предлагает вам ввести символ для замены
· Выводит содержимое объединенной строки после замены символа