Что такое код strstr


ООП / Функции для работы со строками и символами в Си

Функции для работы со строками и символами в Си

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

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

выполняет побайтное копирование n символов из строки s2 в строку s1. возвращает значения s1

объединяет строку s2 со строкой s1. Результат сохраняется в s1

объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1

сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1 s2 С учётом регистра

сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1 s2 С учётом регистра

сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1 s2 Без учёта регистра

сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1 s2 Без учёта регистра

возвращает значение true, если с является буквой или цифрой, и false в других случаях

возвращает значение true, если с является буквой, и false в других случаях

возвращает значение true, если с является цифрой, и false в других случаях

возвращает значение true, если с является буквой нижнего регистра, и false в других случаях

возвращает значение true, если с является буквой верхнего регистра, и false в других случаях

возвращает значение true, если с является пробелом, и false в других случаях

если символ с, является символом нижнего регистра, то функция возвращает преобразованный символ с в верхнем регистре, иначе символ возвращается без изменений.

поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с. Если символ не найден, то возвращается ноль.

определяет длину начального сегмента строки s1, содержащего те символы, которые не входят в строку s2

возвращает длину начального сегмента строки s1, содержащего только те символы, которые входят в строку s2

Возвращает указатель первого вхождения любого символа строки s2 в строке s1

преобразует строку s1 в тип double

преобразует строку s1 в тип int

преобразует строку s1 в тип long int

Функции стандартной библиотеки ввода/вывода

считывает символ с со стандартного потока ввода, возвращает символ в формате int

считывает поток символов со стандартного устройства ввода в строку s до тех пор, пока не будет нажата клавиша ENTER

Функции для работы со строками — файлы string.h, stdlib.h

Прототип и краткое описание

double atof(char *str) ; Преобразует строку str в вещественное число типа double

int atoi(char *str) ; Преобразует строку str в десятичное целое число

long atol(char *str) ; Преобразует строку str в длинное десятичное целое число

char *itoa(int v, char *str, int baz) ; Преобразует целое v в строку str. При изображении числа используется основание baz (от 2 до 36). Для отрицательного числа и baz = 10 первый символ — минус(-)

char *ltoa(long v, char *str, int baz); Преобразует длинное целое v в строку str . При изображении числа используется основание baz (от 2 до 36)

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) Преобразует буквы нижнего регистра в строке в соответствующие буквы верхнего регистра

char *ultoa(unsigned long v, char *str, int baz); Преобразует беззнаковое длинное целое v в строку str

void *calloc(unsigned n, unsigned m) ; Возвращает указатель на начало области динамически распределенной памяти для размещения n элементов по m байт каждый. При неудачном завершении возвращает значение null

unsigned coreleft(void); — для моделей памяти tiny, small, medium. unsigned long coreleft(void); — для других моделей памяти. Возвращает значение объема неиспользованной памяти, функция, уникальная для DOS, где приняты упомянутые модели памяти

void free (void *bl); Освобождает ранее выделенный блок динамически распределенной памяти с адресом первого байта bl

void *malloc(unsigned s); Возвращает указатель на блок 0 динамически распределенной памяти длиной s байт. При неудачном завершении возвращает значение null

void *realloc(void *bl, unsigned ns); Изменяет размер ранее выделенной динамической памяти с адресом bl до размера ns байт. Если bl равен null, то функция выполняется как malloc()

Что такое код strstr

Если вычесть результат strstr(если он не NULL) из адреса исходной строки, то получится индекс первого символа подстроки в строке.

Править написанное не буду. Должно быть наоборот.

Во имя Ctrl, Alt и святаго Del, Enter!

Основам программирования не обучаю. Не интересно.

крококрыса сразу с запятой я попробывал сделать, получилось вот так:

«12,7812,0.» — при такой строке «12,» стирается, потому что входит в «7812,»

Написал такой код

А что, использовать функцию strstr тебе жестко в задании приказано? Просто она для решения этой задачи вообще-то не подходит.

Попробуй посмотреть в сторону пары функций strcspn+strncmp.

Кстати, у тебя логика программы работает неверно: тебе требуется удалить повторные вхождения слов, а у тебя удаляются первые вхождения повторяющихся слов.

Т.е. для строки
123,234,456,234,678.

должно получаться
123,234,456,678.

а у тебя выходит
123,456,234,678.

И еще — ты на каком языке пишешь? (за компилятор я понял) Просто по логике это задание на С, но транслируется твоя исходная программа только как С++ программа (или в режиме трансляции C++ always).

strstr

(PHP 4, PHP 5, PHP 7)

strstr — Находит первое вхождение подстроки


Описание

Возвращает подстроку строки haystack , начиная с первого вхождения needle (и включая его) и до конца строки haystack .

Эта функция учитывает регистр символов. Для поиска без учета регистра используйте stristr() .

Если нужно лишь определить, встречается ли подстрока needle в haystack , используйте более быструю и менее ресурсоемкую функцию strpos() .

Список параметров

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr() .

Если установлен в TRUE , strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).

Возвращаемые значения

Возвращает часть строки или FALSE , если needle не найдена.

Список изменений

Версия Описание
5.3.0 Добавлен необязательный параметр before_needle .

Примеры

Пример #1 Пример использования strstr()

= ‘name@example.com’ ;
$domain = strstr ( $email , ‘@’ );
echo $domain ; // выводит @example.com

$user = strstr ( $email , ‘@’ , true ); // Начиная с PHP 5.3.0
echo $user ; // выводит name
?>

Смотрите также

  • stristr() — Регистронезависимый вариант функции strstr
  • strrchr() — Находит последнее вхождение символа в строке
  • strpos() — Возвращает позицию первого вхождения подстроки
  • strpbrk() — Ищет в строке любой символ из заданного набора
  • preg_match() — Выполняет проверку на соответствие регулярному выражению

User Contributed Notes 8 notes

strstr() is not a way to avoid type-checking with strpos().

If $needle is the last character in $haystack, and testing $needle as a boolean by itself would evaluate to false, then testing strstr() as a boolean will evaluate to false (because, if successful, strstr() returns the first occurrence of $needle along with the rest of $haystack).

( ‘01234’ ); // found a zero
findZero ( ‘43210’ ); // did not find a zero
findZero ( ‘0’ ); // did not find a zero
findZero ( ’00’ ); // found a zero
findZero ( ‘000’ ); // found a zero
findZero ( ’10’ ); // did not find a zero
findZero ( ‘100’ ); // found a zero

function findZero ( $numberString ) <
if ( strstr ( $numberString , ‘0’ )) <
echo ‘found a zero’ ;
> else <
echo ‘did not find a zero’ ;
>
>
?>

Also, strstr() is far more memory-intensive than strpos(), especially with longer strings as your $haystack, so if you are not interested in the substring that strstr() returns, you shouldn’t be using it anyway.

There is no PHP function just to check only _if_ $needle occurs in $haystack; strpos() tells you if it _doesn’t_ by returning false, but, if it does occur, it tells you _where_ it occurs as an integer, which is 0 (zero) if $needle is the first part of $haystack, which is why testing if (strpos($needle, $haystack)===false) is the only way to know for sure if $needle is not part of $haystack.

My advice is to start loving type checking immediately, and to familiarize yourself with the return value of the functions you are using.

Been using this for years:

/**
*
* @author : Dennis T Kaplan
*
* @version : 1.0
* Date : June 17, 2007
* Function : reverse strstr()
* Purpose : Returns part of haystack string from start to the first occurrence of needle
* $haystack = ‘this/that/whatever’;
* $result = rstrstr($haystack, ‘/’)
* $result == this
*
* @access public
* @param string $haystack, string $needle
* @return string
**/

function rstrstr ( $haystack , $needle )
<
return substr ( $haystack , 0 , strpos ( $haystack , $needle ));
>
?>

You could change it to:
rstrstr ( string $haystack , mixed $needle [, int $start] )
function rstrstr ( $haystack , $needle , $start = 0 )
<
return substr ( $haystack , $start , strpos ( $haystack , $needle ));
>

Strstr через указатели на языке c

— это стандартный код для strstr i, сделанный

Это стандарт, который должен сказать об этом:

Функция strstr определяет первый в строке, на которую указывает s1 последовательности символов (исключая завершающий нуль символ) в строке, на которую указывает s2.

Функция strstr возвращает указатель на расположенную строка или нулевой указатель, если строка не найдена. Если s2 указывает на строка с нулевой длиной, функция возвращает s1.

Итак, похоже, что у вас отсутствуют аргументы const для аргументов.

Что касается стиля, обратите внимание, что *(ptr+index) можно заменить на ptr[index] , а size_t — лучший тип для индексации указателя.

Что касается общего способа его реализации, сравните с кодом GCC:

Описание функций C (Си) / C++ — strstr

Описание функций C (Си) / C++ — strstr

#include требуется только для объявления
функции

char *strstr(srting1,string2);
char *string1; поисковая строка
char *string2; строка-шаблон

Функция strstr возвращает указатель на первое вхождение
string1 в string2.

Функция strstr возвращает указатель на string1, если
string1 обнаружена, и NULL — если string1 нет.
См. также strcspn.

main()
<
char *string1=»needle in a haystack»;
char *string2=»hay»;

strstr

(PHP 4, PHP 5, PHP 7)

strstr — Находит первое вхождение подстроки

Описание

Возвращает подстроку строки haystack , начиная с первого вхождения needle (и включая его) и до конца строки haystack .

Эта функция учитывает регистр символов. Для поиска без учета регистра используйте stristr() .

Если нужно лишь определить, встречается ли подстрока needle в haystack , используйте более быструю и менее ресурсоемкую функцию strpos() .

Список параметров

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr() .

Если установлен в TRUE , strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).

Возвращаемые значения

Возвращает часть строки или FALSE , если needle не найдена.

Список изменений

Версия Описание
5.3.0 Добавлен необязательный параметр before_needle .

Примеры

Пример #1 Пример использования strstr()

= ‘name@example.com’ ;
$domain = strstr ( $email , ‘@’ );
echo $domain ; // выводит @example.com

$user = strstr ( $email , ‘@’ , true ); // Начиная с PHP 5.3.0
echo $user ; // выводит name
?>

Смотрите также

  • stristr() — Регистронезависимый вариант функции strstr
  • strrchr() — Находит последнее вхождение символа в строке
  • strpos() — Возвращает позицию первого вхождения подстроки
  • strpbrk() — Ищет в строке любой символ из заданного набора
  • preg_match() — Выполняет проверку на соответствие регулярному выражению

User Contributed Notes 8 notes

strstr() is not a way to avoid type-checking with strpos().

If $needle is the last character in $haystack, and testing $needle as a boolean by itself would evaluate to false, then testing strstr() as a boolean will evaluate to false (because, if successful, strstr() returns the first occurrence of $needle along with the rest of $haystack).

( ‘01234’ ); // found a zero
findZero ( ‘43210’ ); // did not find a zero
findZero ( ‘0’ ); // did not find a zero
findZero ( ’00’ ); // found a zero
findZero ( ‘000’ ); // found a zero
findZero ( ’10’ ); // did not find a zero
findZero ( ‘100’ ); // found a zero

function findZero ( $numberString ) <
if ( strstr ( $numberString , ‘0’ )) <
echo ‘found a zero’ ;
> else <
echo ‘did not find a zero’ ;
>
>
?>

Also, strstr() is far more memory-intensive than strpos(), especially with longer strings as your $haystack, so if you are not interested in the substring that strstr() returns, you shouldn’t be using it anyway.

There is no PHP function just to check only _if_ $needle occurs in $haystack; strpos() tells you if it _doesn’t_ by returning false, but, if it does occur, it tells you _where_ it occurs as an integer, which is 0 (zero) if $needle is the first part of $haystack, which is why testing if (strpos($needle, $haystack)===false) is the only way to know for sure if $needle is not part of $haystack.

My advice is to start loving type checking immediately, and to familiarize yourself with the return value of the functions you are using.

Been using this for years:

/**
*
* @author : Dennis T Kaplan
*
* @version : 1.0
* Date : June 17, 2007
* Function : reverse strstr()
* Purpose : Returns part of haystack string from start to the first occurrence of needle
* $haystack = ‘this/that/whatever’;
* $result = rstrstr($haystack, ‘/’)
* $result == this
*
* @access public
* @param string $haystack, string $needle
* @return string
**/

function rstrstr ( $haystack , $needle )
<
return substr ( $haystack , 0 , strpos ( $haystack , $needle ));
>
?>

You could change it to:
rstrstr ( string $haystack , mixed $needle [, int $start] )
function rstrstr ( $haystack , $needle , $start = 0 )
<
return substr ( $haystack , $start , strpos ( $haystack , $needle ));
>

Функции библиотеки C — strstr ()

описание

Функции библиотеки Cсимвол * strstr (Const символ * Стог , Const символ * игла) в строке стоге сена, чтобы найтииглув первой позиции первого вхождения строки, не включая завершающий символ ‘\ 0’.

заявление

Здесь () функция strstr утверждение.

параметры


  • стог — строки C должны быть извлечены.
  • игла — в строке стоге для поиска небольших строк.

Возвращаемое значение

Эта функция возвращает позицию первого вхождения иглы в стоге строку, если не нашел, что это возвращает нуль.

примеров

Следующий пример демонстрирует, функция strstr () используется.

Давайте скомпилировать и запустить эту программу, которая приведет к следующему:

Что такое код strstr

Здравствуйте, UNI_X, Вы писали:

UNI>Hi All! Вопрос возможно покажется глупым, но я понять не могу, что возвращает функция strstr, в описании написано, что она возвращает указатель на искому подстроку, если такая имеется. Но что это за указатель.

UNI>Приведу пример. У меня есть строка примерно такого типа: «*Строка*1*Строка*2*Строка**Строка*4*». Вобщем если в строке имеется подстрока «**» нужно между этими звёздочками вставить пробел. Что бы исходная строка приняла вид: «*Строка*1*Строка*2*Строка*_*Строка*4*». Подскажите пожалуйста, как это сделать.

1. Выделить память под новую строку
2. Найти в исходной строке последовательность «**» и скопировать все, что перед ней + первую ‘*’ в этот буфер
3. Добавить в конец буфера пробел
4. Добавить в конец буфера остаток исходной строки

P.S.
ИМХО Вам стоит ознакомиться с темой «Арифметика указателей».

ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia

От: Greg Zubankov
Дата: 13.10.06 06:18
Оценка:

Здравствуйте, UNI_X, Вы писали:

Например так: (строка с результатом в ns)

Но лучше воспользоваться std::string:

От: Кодт
Дата: 13.10.06 08:21
Оценка: 3 (1)

Здравствуйте, UNI_X, Вы писали:

UNI>Hi All! Вопрос возможно покажется глупым, но я понять не могу, что возвращает функция strstr, в описании написано, что она возвращает указатель на искому подстроку, если такая имеется. Но что это за указатель. Приведу пример. У меня есть строка примерно такого типа: «*Строка*1*Строка*2*Строка**Строка*4*». Вобщем если в строке имеется подстрока «**» нужно между этими звёздочками вставить пробел. Что бы исходная строка приняла вид: «*Строка*1*Строка*2*Строка*_*Строка*4*». Подскажите пожалуйста, как это сделать.

С помощью strstr ты находишь позицию в исходной строке — точку вставки, грубо говоря.
Далее всё зависит от того, можно ли исходную строку менять, и как именно.

Ну а если ты пишешь на С++, то обрати внимание, что у популярных классов строк есть методы и поиска, и вставки.

От: UNI_X
Дата: 13.10.06 19:12
Оценка:
От: nau
Дата: 13.10.06 19:50
Оценка: +1

Здравствуйте, UNI_X, Вы писали:

UNI>Всем спасибо. Кодт, тебе отдельный респект. Очень подробно и понятно.
Если не считать того, что последний пример неверный

поставит _ перед **, и то, если он там есть.
Правильный вариант указан Глебом (Greg Zubankov):

От: Greg Zubankov
Дата: 14.10.06 07:13
Оценка:
От: night beast
Дата: 14.10.06 13:28
Оценка:

Здравствуйте, Greg Zubankov, Вы писали:

nau>>Правильный вариант указан Глебом (Greg Zubankov):
GZ>Спасибо конечно, но меня зовут Григорий

Случайно не тот самый Григорий, который грозился после отпуска порадовать своих читателей новыми блогами?

От: nau
Дата: 14.10.06 13:39
Оценка:
От: Greg Zubankov
Дата: 14.10.06 13:45
Оценка: 10 (1)

Здравствуйте, night beast, Вы писали:

NB>Случайно не тот самый Григорий, который грозился после отпуска порадовать своих читателей новыми блогами?

NB>

Грешен.
В понедельник появится новая запись. Черновик уже готов.

2 RSDN team: можно ли воспользоваться в личных целях (блог) шаблоном для верстки статей RSDN?

От: Greg Zubankov
Дата: 14.10.06 13:47
Оценка:

Здравствуйте, nau, Вы писали:

nau>Ой, прошу прощения, облажался
nau>

От: UNI_X
Дата: 15.10.06 05:33
Оценка:

Тут у меня ещё вопросик возник. Если например в строке имеется не одно, а несколько вхождений «**» тогда ведь нужно вызывать strstr в цикле, пока не вернётся NULL. Я сколько не пытался, прога зависает почему-то, вот кусочек кода, подскажите что я не так делаю:

От: remark http://www.1024cores.net/
Дата: 15.10.06 06:25
Оценка: +1

Здравствуйте, UNI_X, Вы писали:

UNI>Тут у меня ещё вопросик возник. Если например в строке имеется не одно, а несколько вхождений «**» тогда ведь нужно вызывать strstr в цикле, пока не вернётся NULL. Я сколько не пытался, прога зависает почему-то, вот кусочек кода, подскажите что я не так делаю:

UNI>

Неправильно то, что пытаешься сам это реализовать Всё ценное уже украдено до нас:

От: Greg Zubankov
Дата: 15.10.06 06:38
Оценка: 2 (1)

Здравствуйте, UNI_X, Вы писали:

UNI>Тут у меня ещё вопросик возник. Если например в строке имеется не одно, а несколько вхождений «**» тогда ведь нужно вызывать strstr в цикле, пока не вернётся NULL.

Правильно. Посмотри как это сделал я:

How to Write a code to implement strstr function in C?

Before implementing strstr function, first thing, you need to understand strstr function. What does strstr function do? What are its uses?

What is strstr function in C?

Strstr is the inbuilt string function given in C language. This function is used to find the substring in other string. Before to write our own code to implement the strstr function in C, I briefly introduce you an inbuilt strstr function with its syntax.

Syntax Declaration for strstr function:

This function is very easy to use in c language. It has two arguments as char strings. First string contents base string in which we want to search sub-string. The Second argument is sub-string that need to be searched in base string.

If it founds substring in the base string, it returns 1. Otherwise, it returns 0.

Now here, instead of using an inbuilt strstr function, we want to implement a strstr function in C. This function will work the same like as inbuilt strstr() function.

I have been asked this question in IBM placement interview on campus.

Code to implement strstr function in C

Complete C program to write your own strstr function.

Output:

Case 1:

Case 2:

Note: Here, I am using fstrstr() function that will work as an inbuilt function strstr() . Even you can use the same function name as strstr() . If there is inbuilt as well as user-defined function with the same name, the user-defined function will get the call.

Time Complexity: O(n^2)

As in the worst case, we are comparing every letter in the base string with every letter in the substring, it’s complexity is O(n^2) .

Difficulty Level: Medium

Do you have any other solution? Let’s code it in the comment section below.

Вопрос по функции Си strtok. Никак не могу разобраться как она работает.

Постарался рассказать об этой функции максимально кратко и понятно (а главное — по-русски) :

1. Функция strtok() позволяет разбить строку на части с использованием заданных разделителей.
На практике эту функцию удобно использовать, например, для ввода даты, когда надо выделить день, месяц и год, разделённые точкой.

2. Как и большинство других функций для работы со строками, хранится в заголовочном файле .
То есть в начало кода нужно добавить
#include

3. Сам синтаксис strtok():
char *strtok(char *str, const char *sep);
Первый аргумент — указатель на строку, которую нужно разбить на части.
Второй аргумент — указатель на строку, содержащую набор символов-разделителей.
Возвращает указатель на полученную в итоге лексему.

4. Функция strtok() выделяет очередную часть строки str, отделенную одним из символов разделителей sep. Последовательный вызов функции strtok() приводит к разбиению строки str на части (лексемы) .

5. И, наконец, пример:

#include // printf()
#include // strtok()

int main (void)
<
char str [24]=»27.06.2013″;
char sep [10]=».»;
char *istr;

printf («Ishodnaya stroka: %s\n», str);
printf («Result:\n»);
istr = strtok (str,sep);

while (istr != NULL)
<
printf («%s\n»,istr);
istr = strtok (NULL,sep);
>

Удачи и до свидания!

>ra
> http://www.cplusplus.com/reference/cstri.
Конечно, C и C++ очень сходны. Но всё же путать не стоит. Или Вы хотели Сан Саныча заменить, пока тот в отпуске? :-)))

http://www.cplusplus.com/reference/cstring/strtok/
Снизу пример, который должен быть понятен любому, знакомому с Си.

Если первый параметр указатель, то strtok «начинает по новой». Если NULL, то продолжает со строкой, указанной в первом вызове. Второй параметр — разделители. Каждый вызов возвращает указатель на очередную лексему (подстроку, которую ограничена разделителями) , или NULL, если строка полностью обработана.

strtok() «разрушает» обрабатываемую строку, если исходную строку нужно сохранить, то придется работать с копией строки.

char *strstr(char *str, char*razd)<
static char * nach;// для хранения указателя на хвост между вызовами
char *ret=NULL;
int i=0;

if(str)nach=str;//взять новую строку или использовать запомпенное
if(!nach)return NULL;
while( nach[ i] && strchr(razd,nach[ i]) )i++; //отрезать разделители вначале
if(!nach[ i]) // одни разделители

Илон Маск рекомендует:  Alt-коды
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL