CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
strcat-strdup
STRCAT-STRDUP
#include<string.h> требуется только для объявления
функции
char *strcat(string1,string2);
добавляет string2 к string1
char *string1; строка-приемник
char *string2; строка-источник
char *strchr(string,c); находит первое вхождение
c в string
char *string; строка-источник
int c; поисковый символ
int strsmp(string1,string2); сравнивает строки
char *string1;
char *string2;
int strcmpi(string1,string2); сравнивает строки вне
зависимости от типа
регистра
char *string1;
char *string2;
char strcpy(string1,string2); копирует string2 в
string1
char *string1; строка-приемник
char *string2; строка-источник
int strcspn(string1,string2); находит первую подстроку
символов в string1, не
входящую в string2
char *string1; строка-источник
char *string2; множество символов
char *strdup(string); дублирует строку
char *string; строка-источник
int stricmp(string1,string2); сравнивает строки вне
зависимости от типа
регистра
char *string1;
char *string2;
Описание.
Функции strcat, strchr, strcmp, strcmpi, strcpy, strspn,
strdup, stricmp работают со строками, оканчивающимися '\0' симво-
лом. Аргументы строк для этих функций предполагают наличие нуле-
вого символа ('\0'), отмечающего конец строки.
При копировании или добавлении строк проверка на переполне-
ние не выполняется.
Функция strcat добавляет string2 к string1, заканчивает ре-
зультирующую строку нулевым символом и возвращает указатель на
строку-приемник (string1).
Функция strchr возвращет указатель на первое вхождение c в
string. Символ c может быть нулевым символом ('\0'); нулевой символ
окончания string включается в поиск. Функция возвращает NULL, ес-
ли символ не найден.
Функция strcmp лексикографически сравнивает строки string1
и string2 и возвращает значение, обозначающее их соотношение так,
как показано ниже.
Значение Его смысл
меньше 0 string 1 меньше string 2
0 string 1 равна string 2
больше 0 string 1 больше string 2
Функции strcmpi и stricmp являются причинно-нечувствитель-
ными версиями strcmp. Два аргумента string1 и string2 сравнивают-
ся вне зависимости от типа регистра; это обозначает, что формы
букв верхнего и нижнего регистров рассматриваются эквивалентными.
Функция strcpy копирует string2 (включая нулевой символ
окончания) в расположение, которое определяется по string1, и
возвращает string1.
Функция strcspn возвращает индекс первого символа в
string1, который принадлежит множеству символов srting2. Это зна-
чение эквивалентно длине начальной подстроки строки string1, ко-
торая содержит все символы, не входящие в строку string2. При по-
иске нулевые символы окончания не рассматриваются. Если string1
начинается с символа, содержащегося в строке string2, strcspn
возвращает 0.
Функция strdup захватывает память (с возвратом malloc) для
копирования string и возвращает указатель на память, содежащую
скопированную строку. Функция возвращает NULL, если память не мо-
жет быть захвачена.
Возвращаемые значения для этих функций описаны выше.
См. также strncat, strncmp, strncpy, ctrnic,p, strrchr,
strspn.
Пример.
#include <string.h>
char string[100], template[100], *result;
int numresult;
.
.
.
/* создает строку "computer program" посредством использо-
вания strcpy и strcat */
strcpy(string, "computer");
result = strcat(string," program");
/* находит строку, в которой первый раз обнаружено 'a' */
result = strchr(string,'a');
/* определяет, является ли строка больше, меньше или равной
другой */
numresult = strcmp(string, template);
/* сравнивает две строки вне зависимости от типа регистра
*/
numresult = strcmpi("hello", "HELLO");
/* создает копию строки */
result = strcpy(template,string);
/* находит "a","b","c" в строке */
strcpy(string,"xyzabbc");
result = strcspn(string,"abc");
/* создает новый указатель на строку для дублирования стро-
ки */
result = strdup(string);
