Можна починати роботу.”

Другие примеры постоянных строкового типа: “ Первая строка\nВторая строка ”, L“Hello, \004dартин” (“Hello, Мартин”).

В языке С нет специального типа данных для строковых переменных. Строка символов определяется языком С++ как массив символов с завершающим невидимым символом-терминатором ' \0 ' (см. рисунок 1). Поэтому, под размещаемую в памяти строку необходимо отводить на 1 байт больше количества символов в строке.

Примеры объявлений массивов:

1. char Prompt [6] = {'R', 'e', 'p', 'l', 'a', 'y'}; // массив из шести символов

2. char Prompt [ ] = "Replay"; // массив из шести символов длиной 7 байтов

Обратиться к символу - элементу массива можно, указав имя массива и индекс символа в строке.

В языке С++ для работы со строковыми функциями (таблица 3.4) используюется заголовочные файлы <string.h> и <stdlib.h>; в них, например, определен тип size_t - тип результата, который получается после применения оператора sizeof и представляет собой разновидность целого без знака.

Таблица 3.4 - Функции для работы со строками

Прототип функции Краткое описание функции
char * strcat (char *sp, char *si) дописывает строку si к строке sp (конкатенация строк)
char *strchr (char *str, int c) ищет в строке str первое вхождение символа с
int strcmp (char *str1, char *str2) сравнивает строки str1 и str2; результат отрицателен, если strl меньше str2, равен нулю, если str1 равно str2 и положителен, если str1 больше str2 (сравнение беззнаковое)
char *strcpy (char *sp, char *si) копирует байты строки si в строку sp
int strcspn (char *str1, char *str2) определяет длину первого сегмента строки str1, содержащего символы, не входящие во множество символов строки str2
char *strdup (const char *str) выделяет память и переносит в нее копию строки str
unsigned strlen (char *str) вычисляет длину строки str
char *strlwr(char *str) преобразовывает буквы верхнего регистра в строке в соответствующие буквы нижнего регистра
char *strncat (char *sp, char *si, int kol) дописывает kol символов строки si к строке sp
int strncmp (char *str1, char *str2, int kol); сравнивает части строк str1 и str2, причем рассматриваются первые kol символов. Результат отрицателен, если str1 меньше str2; равен нулю, если str1 равен str2, и положителен, если str1 больше str2
char *strncpy (char *sp, char *si, int kol) копирует kol символов строки si в строку sp («хвост» отбрасывается или дополняется пробелами)
char *strnicmp (char *str1, char *str2, int kol) сравнивает не более kol символов строки str1 и строки str2, не делая различия регистров
char *strnset (char *str, int с, int kol) заменяет первые kol символов строки str символом с
char *strpbrk (char *str1, char *str2) ищет в строке str1 первое появление любого из множества символов, входящих в строку str2
char *strrchr (char *str, int с) ищет в строке str последнее вхождение символа с
int strset(char *str, int с) заполняет строку str символом с
int strspn (char *str1, char *str2) определяет длину первого сегмента строки str1, содержащего только символы, из множества символов строки str2
char *strstr(const char *str1, const char *str2) ищет в строке str1 подстроки str2. Возвращает указатель на тот элемент в строке str1, с которого начинается подстрока str2
double *strtod (const char *str, char **endptr) преобразует символьную строку str в число двойной точности; если endpt нe равен null, то *endptr возвращает как указатель на символ, при достижении которого прекращено чтение строки str
char *strtok (char *str1, const char *str2) ищет в строке str1 лексемы, выделенные символами из второй строки
long *strtol (const char *str, char **endptr,intbaz) преобразует символьную строку str к значению «длинное число» с основанием baz(от 2 до 36). Если endptr не равен null, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str
char *strupr (char *str) преобразует буквы нижнего регистра в строке в соответствующие буквы верхнего регистра

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: