|
|||
using namespace std;. int main(). char a, b, c, d, e;. return 0;. Стандартные функции работы со cтрокамиusing namespace std; int main() { setlocale(LC_ALL, "Russian");
char a, b, c, d, e; cin >> a >> b; cout << a << ' ' << b << endl; c = cin.get(); cin.get(d); cout << c << ' ' << d << endl; e = getchar(); putchar(e); return 0; } В библиотеке также определен целый ряд функций, проверяющих принадлежность символа какому-либо множеству, например множеству букв (isalfa), разделителей (isspace), знаков пунктуации (ispunct), цифр (isdigit) и т. д. Описание этих функций приведено ниже. 2.1.4 Стандартные функции работы со cтроками 2.1.4.1 <string.h> (<cstring>) – функции работы со строками в стиле C void *memchr(const void *p, int ch, size_t n); Ищет первое вхождение символа в блок памяти. Функция возвращает указатель на первое вхождение байта, представленного младшим байтом аргумента ch в блоке памяти p длиной n. int memcmp(const void *p1, const void *p2, size_t n); Сравнивает блоки памяти Функция сравнивает два блока памяти и возвращает значение: меньше нуля, равное нулю или больше нуля – аналогично кодам возврата функции strcmp. void *memcpy(void *dest, const void *src, size_t n); Копирует блок памяти Функция копирует блок памяти длиной n байт из адреса src по адресу dest. void *memmove(void *dest, const void *src, size_t n); Переносит блок памяти Функция аналогична memcpy, но блоки dest и src могут перекрываться. void *memset(const void *р, int ch, size_t n); Заполняет блок памяти символом Функция заполняет блок памяти символом, взятым из младшего байта ch. char *strcat(char *s1, char *s2); Складывает строки Функция добавляет s2 к s1 и возвращает s1. В конец результирующей строки добавляется нуль-символ. char *strchr(char *s, int ch); Ищет символ в строке Функция возвращает указатель на первое вхождение символа ch в строку s, если его нет, то возвращается NULL. int strcmp(char *s1, char *s2); Сравнивает строки Функция сравнивает строки и возвращает отрицательное (если s1 меньше s2), нулевое (если s1 равно s2) или положительное (если s1 больше s2) значение. char *strcoll(char *s1, char *s2); Сравнивает строки с учетом установленной локализации Функция сравнивает строки аналогично strcmp, но учитывает установки локализации. char *strcpy(char *s1, char *s2); Копирует одну строку в другую Функция копирует s2 в s1 и возвращает s1. size_t strcspn(char *s1, char *s2); Ищет один из символов одной строки в другой Функция возвращает значение индекса любого из символов из s2 в строке s1. char *strerror(size_t n); Возвращает указатель на строку с описанием ошибки Функция возвращает указатель на строку с описанием ошибки номер n. struct tm strftime(char *s, size_t size, fmt, const struct tm *ctm); Преобразует время в формате fmt в формат tm Функция возвращает отформатированную строку с датой и временем на основе формата fmt. Значение функции имеет тип time_t, соответствующий типу tm. size_t strlen(char *s); Возвращает длину строки Функция возвращает длину строки (без учета символа завершения строки). char *strncat(char *s1, char *s2, size_t n); Складывает одну строку с n символами другой Функция добавляет не более п символов из s2 к s1 и возвращает s1. Первый символ s2 пишется на место завершающего нуль-символа строки s1. Если длина строки s2 меньше n, переписываются все символы s2. К строке s1 добавляется нуль-символ. Если строки перекрываются, поведение не определено. int strncmp(char *s1, char *s2, size_t n); Сравнивает одну строку с n символами другой Функция сравнивает первую строку и первые n символов второй строки и возвращает отрицательное (если s1меньше s2), нулевое (если s1 равно s2) или положительное (если s1 больше s2) значение. char *strncpy(char *s1, char *s2, size_t n); Копирует первые n символов одной строки в другую Функция копирует не более n символов из s2 в s1 и возвращает s1. Если длина исходной строки превышает или равна n, нуль-символ в конец строки s1 не добавляется. В противном случае строка дополняется нуль-символами до n-го символа. Если строки перекрываются, поведение не определено. char *strpbrk(char *s1, char *s2); Ищет один из символов одной строки в другой Функция возвращает указатель на символ, являющийся первым вхождением любого из символов из s2 в строку s1, если его нет, возвращается NULL. char *strrchr(char *s,int ch); Ищет символ в строке Функция возвращает указатель на первое вхождение символа ch в строку s справа, если его нет, возвращает NULL. size_t strspn(char *s1, char *s2); Ищет символ одной строки, отсутствующий в другой Функция возвращает индекс первого символа в s1, отсутствующего в s2. char *strstr(char *s1, char *s2); Ищет подстроку в строке Функция выполняет поиск первого вхождения подстроки s2 в строку s1. В случае удачного поиска, возвращает указатель на элемент из s1, с которого начинается s2, и NULL в противном случае. double strtod(const char *str, char **end); Преобразует строку в число Функция преобразует строку символов в числовое значение и возвращает его. При переполнении возвращает +/-HUGE_VAL При невозможности выполнить преобразование или исчезновении порядка возвращает 0. В обоих последних случаях errno устанавливается в ERANGE. end указывает на символ, на котором преобразование завершается. char *strtok(char *s1, char *s2); Выделяет из строки лексемы Функция возвращает следующую лексему из s1, отделенную любым из символов из набора s2. double strtol(const char *str, char **end, int radix); Преобразует строку в число с учетом системы счисления Функция преобразует строку символов в числовое значение с учетом указанной системы счисления radix и возвращает полученное число. Функция пропускает возможные начальные пробелы и заканчивает преобразование на первом символе, который не может появиться в образе числа. Параметр end является адресом указателя типа char*; этот указатель будет содержать адрес первого непреобразованного символа. При переполнении возвращает LONG_МАХ или LONG_MIN. При невозможности выполнить преобразование возвращает 0. В обоих последних случаях errno устанавливается в ERANGE. double strtoul(const char *str, char **end, int radix); Преобразует строку в число с учетом системы счисления Функция работает аналогично strtol, но работает с беззнаковым длинным целым. При переполнении возвращает ULONG_MAX. size_t strxfrm(char *s1, char *s2, size_t n); Преобразует строки на основе текущей локализации Функция преобразует строку из s2 и помещение ее в s1 на основе текущей локализации. Преобразуется не более n символов. 2.1.4.2 <stdio.h> (<cstdio>) – функции ввода-вывода в стиле C int snprintf(wchar_t *buffer, const wchar_t *format[, argument, …]); Выводит строку параметров в определенном формате Функция выводит в строку buffer значения переменных, перечисленных в списке, обозначенном многоточием, в формате, определенном строкой format. Является аналогом функции sprintf для многобайтных символов. int swscanf(const wchar_t *buf, const wchar_t *format, ...); Вводит данные из строки Функция аналогично функции scanf вводит данные, но не с клавиатуры, а из строки символов, переданной ей первым параметром. Аргумент buf – строка символов, из которой вводятся значения, format – строка формата, в соответствии с которой происходит преобразование данных, а многоточие указывает на наличие необязательных аргументов, соответствующих адресам вводимых значений. Является аналогом функции sscanf для многобайтных символов. int sprintf(char *buffer, const char *format[,argument, …]); Выводит строку параметров в определенном формате Функция выводит в строку buffer значения переменных, перечисленных в списке, обозначенном многоточием, в формате, определенном строкой format. int sscanf(const char *buf, const char *format [,par1, par2, … ]); Вводит данные из строки Функция аналогично функции scanf вводит данные, но не с клавиатуры, а из строки символов, переданной ей первым параметром. Аргумент buf – строка символов, из которой вводятся значения, format – строка формата, в соответствии с которой происходит преобразование данных, а многоточие указывает на наличие необязательных аргументов, соответствующих адресам вводимых значений. 2.1.4.3<ctype.h> (<cctype>) – функции классификации и преобразования типов int tolower(int ch); Возвращает символ в нижнем регистре Функция получает параметр ch и возвращает его в нижнем регистре. В параметре ch используется только младший байт. int toupper(int ch); Возвращает символ в верхнем регистре Функция получает параметр ch и возвращает его в верхнем регистре. В параметре ch используется только младший байт. int towlower(wint_t ch); Возвращает символ в нижнем регистре Функция получает символ ch и возвращает его в нижнем регистре. Является аналогом функции tolower для многобайтных символов. int towupper(wint_t ch); Возвращает символ в верхнем регистре Функция получает символ ch и возвращает его в верхнем регистре. Является аналогом функции toupper для многобайтных символов. int isalnum(int ch); Проверяет, является ли символ буквой или цифрой Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой или цифрой, или false в противном случае. int isalpha(int ch); Проверяет, является ли символ буквой Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой, или false в противном случае. int iscntrl(int ch); Проверяет, является ли символ управляющим Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является управляющим символом (типа line feed, del, табуляции и тому подобных, большинство из которых находятся в диапазоне 0x01 – 0х1F (для кодировки ASCII)), или false в противном случае. int isdigit(int ch); Проверяет, является ли символ цифрой Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является цифрой, или false в противном случае. int isgraph(int ch); Проверяет, является ли символ видимым Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является видимым (то есть он не является символом пробела, табуляции и т. д.) или false в противном случае. int islower(int ch); Проверяет, является ли символ буквой нижнего регистра Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой нижнего регистра, или false в противном случае. int isprint(int ch); Проверяет, является ли символ печатаемым Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является печатаемым (isgraph + пробел), или false в противном случае. int ispunct(int ch); Проверяет, является ли символ символом пунктуации Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является символом пунктуации (то есть печатаемым, но не буквой, не цифрой, не пробелом), или false в противном случае. int isspace(int ch); Проверяет, является ли символ разграничительным Функция выделяет младщий байт параметра ch и возвращает значение true, если символ ch является символом пробела или табуляцией, или символом новой строки, или символом новый страницы (символом перевода формата), или false в противном случае. int isupper(int ch); Проверяет, является ли символ буквой верхнего регистра Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой верхнего регистра, или false в противном случае. int iswalnum(wint_t сh); Проверяет, является ли символ буквой или цифрой Функция возвращает значение true, если символ ch является буквой или цифрой, или false в противном случае. Является аналогом функции isalnum для многобайтных символов. int iswalpha(wint_t ch); Проверяет, является ли символ буквой Функция возвращает значение true, если символ ch является буквой, или false в противном случае. Является аналогом функции isalpha для многобайтных символов. int iswcntrl(wint_t сh); Проверяет, является ли символ управляющим Функция возвращает значение true, если символ ch является управляющим символом (типа line feed, del, табуляции и тому подобных, большинство из которыхнаходятся в диапазоне 0х01 — 0x1F (для кодировки ASCII)), или false в противном случае. Является аналогом функции iscntrl для многобайтных символов. int iswctype(wint_t с, wctype_t desc); Проверяет многобайтный символ Функция возвращает ненулевое значение, если символ c обладает свойством desc, или нулевое в противном случае. int iswdigit(wint_t сh); Проверяет, является ли символ цифрой Функция возвращает значение true, если символ ch является цифрой, или false в противном случае. Является аналогом функции isdigit для многобайтных символов. int iswgraph(wint_t сh); Проверяет, является ли символ видимым Функция возвращает значение true, если символ ch является видимым (то есть он не является символом пробела, табуляции и т. д.) или false в противном случае. Является аналогом функции isgraph для многобайтных символов. int iswlower(wint_t сh); Проверяет, является ли символ буквой нижнего регистра Функция возвращает значение true, если символ ch является буквой нижнего регистра, или false в противном случае. Является аналогом функции islower для многобайтных символов. int iswprint(wint_t сh); Проверяет, является ли символ печатаемым Функция возвращает значение true, если символ ch является печатаемым (iswgraph + пробел), или false в противном случае. Является аналогом функции isprint для многобайтных символов. int iswpunct(wint_t сh): Проверяет, является ли символ символом пунктуации Функция возвращает значение true, если символ ch является символом пунктуации (то есть печатаемым, но не буквой, не цифрой, не пробелом), или false в противном случае. Является аналогом функции ispunct для многобайтных символов. int iswspace(wint_t сh); Проверяет, является ли символ разграничительным Функция возвращает значение true, если символ ch является символом пробела или табуляцией, или символом новой строки, или символом новой страницы (символом перевода формата), или false в противном случае. Является аналогом функции issрасе для многобайтных символов. int iswupper(wint_t сh); Проверяет, является ли символ буквой верхнего регистра Функция возвращает значение true, если символ ch является буквой верхнего регистра, или false в противном случае. Является аналогом функции isupper для многобайтных символов. int iswxdigit(wint_t ch); Проверяет, является ли символ символом Функция возвращает значение true, если символ ch является символом шестнадцатеричной цифры (цифры, а также буквы от А до F в нижнем или верхнем регистрах), или false в противном случае. Является аналогом функции isxdigit для многобайтных символов. int isxdigit(int сh); Проверяет, является ли символ символом шестнадцатеричной цифры Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является символом шестнадцатеричной цифры (цифры, а также буквы от A до F в нижнем или верхнем регистрах), или false в противном случае.
|
|||
|