Функции для работы со строками объявлены в заголовочном файле string.h. Приведем некоторые из них:
char *strcpy(char *dest, const char *src);
копирует второй аргумент в первый. Возвращает указатель на копию. Память для dest должна быть заранее зарезервирована.
char *strdup(const char *s);
копирует строку во вновь создаваемую функцией malloc() область памяти. Возвращает указатель на созданную копию или 0 при неудаче. Программист ответственен за освобождение памяти функцией free();
size_t strlen(const char *s);
подсчитывает размер строки. Возвращает количество символов строки без нулевого символа. Тип size_t определен в файле string.h и других заголовочных файлах как целое без знака: typedef unsigned size_t;
char *strcat(char *dest, const char *src);
присоединяет вторую строку к первой. Возвращает указатель на начало нарощенной строки.
char *strchr(const char *s, int c);
сканирует строку s в поисках первого вхождения заданного символа с. Нулевой символ можно искать наряду с другими. Возвращает указатель на найденный символ или 0, если символа нет.
char *strrchr(const char *s, int с);
то же, что strchr, но находит последнее вхождение символа с в строку s.
char *strstr(const char *s1, const char *s2);
находит первое вхождение подстроки s2 в строку s1. Возвращает указатель на место первого вхождения или 0, если такового нет.
int strcmp(const char *s1, const char*s2);
сравнивает две строки. Возвращает целое меньше нуля, если s1 < s2, равное нулю, если s1 == s2, и большее нуля, если s1 > s2.
char *strpbrk(const char *s1, const char *s2);
сканирует первую строку в поисках первого вхождения любого символа из второй строки. Возвращает указатель на найденный символ или 0 при неудаче.
char *strtok(char *s1, const char *s2);
сканирует первую строку в поисках первого участка, не содержащего символов из s2. Первый вызов функции возвращает указатель на начало первого участка и записывает 0 в s1 сразу после конца участка. Последующие вызовы с 0 в качестве 1-го аргумента обрабатывают строку дальше, пока еще есть такие участки. Если их нет, возвращается 0. Функцию применяют для выделения слов из предложения si. В строке s2 находятся символы-разделители.
Пример. Ввод, клонирование и вывод строки.
#include <scring.h>
//. . .
char s1[80];
cin » s1;
char *s2 = st.rdup (s1) ;
cout « s1 « s2 « endl;
free (s2);
Замечание. Функция strdup() резервирует память для копии при помощи вызова функции malloc(size_t), поэтому программист должен освободить эту память вызовом функции freef(void*). Функции malloc() и free( ) составляют пару подобно операциям new и delete.
Пример. Заменить в строке s1 первое вхождение слова a словом b.
int main(int argc, char* argv[])
{
char *s1 = "I see nothing.";
char *a = "see", *b = "hear";
char s2 [100];
// для начала скопировать всю строку
strcpy(s2, s1);
// установить p1 на слово а в оригинале
char *p1 = strstr(s1, а);
// установить р2 на слово а в копии
char *р2 = s2 - s1 + p1;
// копировать слово b
strcpy(p2, b);
// сместить указатель в оригинале
p1 += strlen(a);
// сместить указатель в копии
р2 + = strlen(b);
// скопировать остаток строки
strcpy(р2, р1);
cout « s2 « endl ; return 0;
}
Источник: http://www.cplus-plus.ru
Добро пожаловать в блог официального сайта www.cplus-plus.ru
Все представленные материалы в этом блоге находятся по адрусу www.cplus-plus.ru
Сайт разработан с целью удобного изучения объектно-ориентированного программирования языка C++. Сайт содержит: большое количество cред разработки, видеоуроков, исходников, учебников C++ как для начинающих, так и для продвинутых!
Сайт разработан с целью удобного изучения объектно-ориентированного программирования языка C++. Сайт содержит: большое количество cред разработки, видеоуроков, исходников, учебников C++ как для начинающих, так и для продвинутых!
Поиск по этому блогу
Каталог статей
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий