Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
201
Добавлен:
02.05.2014
Размер:
4 Мб
Скачать
☆

Strpbrk

-----------------------------------------------------------------

Назначение Ищет в строке первое вхождение любого символа

из переданного функции набора символов.

Синтаксис char *strpbrk(const char *s1, const char *s2);

Прототип в string.h

Замечания strpbrk осуществляет поиск в строке s1 первого

вхождения любого из символов, определяемых

строкой s2.

Возвращаемое strpbrk возвращает указатель на первое вхожде-

значение ние любого символа из множества символов, опре-

деляемого строкой s2. Если ни один символ из

символов s2 не обнаружен в s1, то функция возв-

ращает нуль.

Переносимость strpbrk доступна в UNIX-системах и совместима

со стандартом ANSI.

-----------------------------------------------------------------

Strrchr

-----------------------------------------------------------------

Назначение Ищет в строке последнее вхождение заданного

символа.

Синтаксис char *strrchr(char *s, int c);

Прототип в string.h

Замечания strrchr проверяет строку в обратном направле-

нии, производя поиск заданного символа. strrchr

находит последнее вхождение символа c в строку

s. Предполагается, что символ окончания строки

является частью строки.

Возвращаемое strrchr возвращает указатель на последнее вхож-

значение дение символа c. Если c не обнаружен в s, то

strrchr возвращает нуль.

Переносимость strrchr доступна в UNIX-системах и совместима

со стандартом ANSI.

-----------------------------------------------------------------

strrev

-----------------------------------------------------------------

Назначение Перевертывает строку.

Синтаксис char *strrev(char *s);

Прототип в string.h

Замечания strrev переустанавливает все символы в строке в

обратном порядке, за исключением завершающего

нулевого символа. (Например, "строка\0" будет

преобразована в "акортс\0".)

Возвращаемое strrev возвращает указатель на перевернутую

значение строку. Ошибочного кода возврата нет.

-----------------------------------------------------------------

strset

-----------------------------------------------------------------

Назначение Устанавливает все символы строки в заданный

символ.

Синтаксис char *strset(char *s, int ch);

Прототип в string.h

Замечания strset устанавливает все символы строки s в

символ ch, заканчивая работу при обнаружении

символа конца строки.

Возвращаемое strset возвращает s.

значение

См. также setmem

-----------------------------------------------------------------

strspn

-----------------------------------------------------------------

Назначение Ищет в строке первый сегмент, который является

подстрокой заданного функции набора символов.

Синтаксис #include <string.h>

size_t strspn(const char *s1, const char *s2);

Прототип в string.h

Замечания strspn находит первый сегмент строки s1, кото-

рый состоит только из символов строки s2.

Возвращаемое strspn возвращает длину первого встретившегося

значение сегмента строки s1, состоящего только из симво-

лов строки s2.

Переносимость strspn доступна в UNIX-системах и совместима со

стандартом ANSI.

-----------------------------------------------------------------

strstr

-----------------------------------------------------------------

Назначение Ищет в строке вхождение заданной подстроки.

Синтаксис char *strstr(const char *s1, const char *s2);

Прототип в string.h

Замечания strstr осуществляет поиск в s2 первого вхожде-

ния в нее подстроки s1.

Возвращаемое strstr возвращает указатель на элемент в строке

значение s2, с которого начинается s2 (указатель на s2 в

s1). Если s2 не обнаружена в s1, то strstr воз-

вращает нуль.

Переносимость strstr доступна в UNIX-системах и совместима со

стандартом ANSI.

-----------------------------------------------------------------

strtod

-----------------------------------------------------------------

Назначение Преобразует строку в числовое значение типа

double.

Синтаксис #include <string.h>

double strtod(const char *s, char **endptr);

Прототип в stdlib.h

Замечания strtod преобразует строку символов s в число

типа double. s является последовательностью

символов, которая может быть интерпретирована

как числовое значение типа double; символы дол-

жны быть сопоставимы со следующим основным фор-

матом:

[ws] [sn] [ddd] [.] [ddd] [fmt[sn]ddd]

где:

[ws] = необязательные пробелы или табуляции;

[sn] = необязательный знак (+ или -);

[ddd] = необязательные цифры;

[fmt] = необязательные е или Е;

[.] = необязательная десятичная точка;

strtod также распознает +INF и -INF как положи-

тельный и отрицательный инфинитив, а также +NAN

и -NAN как "нечисло".

Для примера ниже приведено несколько строк, ко-

торые функция strod может преобразовать в чис-

ловое значение типа double:

+1231.1981 е-1

502.85Е2

+2010.952

strtod прекращает чтение строки, как только ей

попадается символ, который не может быть интер-

претирован как составляющая часть числового

значения типа double.

Если endptr отлична от нуля, то strtod устанав-

ливает в endptr значение указателя на символ,

вызвавший останов анализа строки (*endptr =

&stopper)

Возвращаемое strtod возвращает значение s как double. В слу-

значение чае переполнения возвращается HUGE_VAL.

Переносимость strtod доступна в UNIX-системах и совместима со

стандартом ANSI.

См. также atof

-----------------------------------------------------------------

strtok

-----------------------------------------------------------------

Назначение Ищет в из первой строке лексемы, которые разде-

лены любым из символов, входящих во вторую

строку.

Синтаксис char *strtok(char *s1, const char *s2);

Прототип в string.h

Замечания strtok воспринимает s1 как состоящую из нуля

или более текстовых лексем, разделенных между

собой одним или более символом, определенными в

строке s2.

Первое обращение к strtok возвращает значение

указателя на первый символ первой лексемы в s1

и записывает нулевой символ в s1 непосредствен-

но за возвращенной лексемой. Последовательность

обращений с нулевым значением первого аргумента

приведет к обработке всей строки s1 до исчерпа-

ния всех лексем.

Строка разделителей s2 может изменяться от вы-

зова к вызову.

Возвращаемое strtok возвращает указатель на лексему, найден-

значение ную в s1. Когда в s1 не остается больше лексем,

strtok возвращает нулевой (пустой) указатель.

Переносимость strtok доступна в UNIX-системах и совместима со

стандартом ANSI.

Пример /* Этот пример демонстрирует применение функции

strtok при разборе даты. Заметим, что для раз-

бора даты, представленной в различных форматах

(т.е. 12/3/87; Dec.12,1987; January 15, 1988;

12-FEB-88 и т.д.), вы должны специфировать

строку ограничителей содержащую вместе точку,

запятую, пробел, минус или слеш. Отметим, что

на выходе разделители не возвращаются. */

#include <stdio.h>

#include <string.h>

main ()

{

char *ptr;

ptr = strtok("FEB.14,1988",". ,-/" );

while (ptr != NULL)

{

printf("ptr = %s\n", ptr);

ptr = strtok(NULL, ". ,-/");

}

}

Вывод программы

ptr = FEB

ptr = 14

ptr = 1988

-----------------------------------------------------------------

strtol

-----------------------------------------------------------------

Назначение Преобразует строку в числовое значение типа

long.

Синтаксис long strtol(const char *s, char **endptr,

int radix);

Прототип в stdlib.h

Замечания strtol преобразует строку символов s в целое

значение типа long. s является последователь-

ностью символов, которая может быть интерпрети-

рована как числовое значение типа long; она

должна быть сопоставима со следующим основным

форматом:

[ws] [sn] [0] [x] [ddd]

где:

[ws] = необязательные пробелы или табуляции;

[sn] = необязательный знак (+ или -);

[0] = необязательный ноль (0)

[x] = необязательный x или X

[ddd]= необязательные цифры

strtol прекращает чтение строки как только

встретит первый нераспознаваемый ею символ.

Если radix имеет значение между 2 и 36, то це-

лочисленное значение типа long будет являтся

выражением с основанием, задаваемым аргументом

radix. Если значение radix равно 0, то первые

несколько символов s будут определять основание

преобразованного числа.

-----------------------------------------------

Первый Второй Строка интер-

символ символ претируется как

-----------------------------------------------

0 1-7 восьмиричное

0 x или X шестнадцатиричное

1-9 десятичное

-----------------------------------------------

Если radix равно 1, то его значение считается

неверным. Если radix меньше 0 или больше 36, то

его значение также будет считаться неверным.

Любые неверные значения radix приводят к тому,

что результатом преобразования строки будет 0 и

указатель на следующий символ строки *endptr

будет установлен в ее начало.

Если значение в s должно быть интерпретировано

как восьмиричное, то любые символы вне диапозо-

на от 0 до 7 не распознаются.

Если значение в s должно быть интерпретировано

как десятичное, то любые символы вне диапозона

от 0 до 9 не распознаются.

Если значение в s должно быть интерпретировано

как число с любым другим основанием, то распоз-

наваться будут только цифры и буквы, используе-

мые в представлении числа с этим основанием.

(Например, если radix = 5, то распознаваться

будут только цифры от 0 до 4; если radix = 20,

то распознаваться будут только цифры от 0 до 9

и буквы от A до J.)

Если endptr отлична от нуля, то strtol устанав-

ливает в endptr значение указателя на символ,

вызвавший останов анализа строки (*endptr =

&stopper)

Возвращаемое strtol возвращает преобразованное числовое зна-

значение чение строки или нуль при ошибке.

Переносимость strtol доступна в UNIX-системах и совместима со

стандартом ANSI.

См. также atoi, atof, strtoul

-----------------------------------------------------------------