Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Справка функциям С++.doc
Скачиваний:
61
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

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

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