Аналог strchr и index
От: UNI_X Россия  
Дата: 08.09.06 17:41
Оценка: :)
Доброго времени суток, господа. Сразу извеняюсь — вопрос тупой... иначе никак не назовешь, но тем не менее. Есть такие замечательные функции в Си: strchr и index (находятся в string.h) аналогичные по своему назначению. Обе они ущет первое вхождение подстроки в строке. Мне вот только один момент не нравится, когда-то я VB изучал, так вот там есть такая функция InStr она тоже ищет вхождение строки в строке, но можно ещё и указывать начало поиска, т.е. начиная с какого символа функция должна искать это самое вхождение. Вункции Си этого маленького, но приятного достоинства лишены, есть ли какие-нибудь аналоги, способные удовлетворить такому условию (возможность указать позицию начала поиска)?

P.S. Ответы типа: "сам что ли написать не можешь" просьба не писать. Во-первых интересуюсь я не столько потому что писать лень, сколько потому что хочу знать о возможном наличии таких функций, во-вторых прога моя и так уже шире газеты, хотелось бы решить проблему без лишних выкрутасов
Я бы изменил мир, но бог не даёт исходники!
Re: Аналог strchr и index
От: korzhik Россия  
Дата: 08.09.06 17:50
Оценка:
Здравствуйте, UNI_X, Вы писали:

UNI>Доброго времени суток, господа. Сразу извеняюсь — вопрос тупой... иначе никак не назовешь, но тем не менее. Есть такие замечательные функции в Си: strchr и index (находятся в string.h) аналогичные по своему назначению. Обе они ущет первое вхождение подстроки в строке. Мне вот только один момент не нравится, когда-то я VB изучал, так вот там есть такая функция InStr она тоже ищет вхождение строки в строке, но можно ещё и указывать начало поиска, т.е. начиная с какого символа функция должна искать это самое вхождение. Вункции Си этого маленького, но приятного достоинства лишены, есть ли какие-нибудь аналоги, способные удовлетворить такому условию (возможность указать позицию начала поиска)?



функцию index я не знаю, а вот с strchr делается так:
  consy char* src = "tra lla lla";

  strchr(src, 'l'); // ищем с начала строки
  strchr(src + 3, 'l'); // ищем начиная с 4-го символа
Re: Аналог strchr и index
От: dr.Chaos Россия Украшения HandMade
Дата: 08.09.06 17:55
Оценка:
Здравствуйте, UNI_X, Вы писали:

UNI>Доброго времени суток, господа. Сразу извеняюсь — вопрос тупой... иначе никак не назовешь, но тем не менее. Есть такие замечательные функции в Си: strchr и index (находятся в string.h) аналогичные по своему назначению. Обе они ущет первое вхождение подстроки в строке. Мне вот только один момент не нравится, когда-то я VB изучал, так вот там есть такая функция InStr она тоже ищет вхождение строки в строке, но можно ещё и указывать начало поиска, т.е. начиная с какого символа функция должна искать это самое вхождение. Вункции Си этого маленького, но приятного достоинства лишены, есть ли какие-нибудь аналоги, способные удовлетворить такому условию (возможность указать позицию начала поиска)?


UNI>P.S. Ответы типа: "сам что ли написать не можешь" просьба не писать. Во-первых интересуюсь я не столько потому что писать лень, сколько потому что хочу знать о возможном наличии таких функций, во-вторых прога моя и так уже шире газеты, хотелось бы решить проблему без лишних выкрутасов


Функция strstr,


char *src = "abcdbcgbc",
     *tmpl = "bc",
     *temp = NULL;
temp = strstr(src,tmpl); // с начала строки
strstr(temp+1,tmpl);     // со след элемента, за первым из найденной подстроки
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[2]: Аналог strchr и index
От: UNI_X Россия  
Дата: 09.09.06 05:35
Оценка:
Всем спасибо. Все ясно.
Я бы изменил мир, но бог не даёт исходники!
Re[3]: Аналог strchr и index
От: UNI_X Россия  
Дата: 09.09.06 09:49
Оценка:
Здравствуйте, UNI_X, Вы писали:

UNI>Всем спасибо. Все ясно.


Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?
Я бы изменил мир, но бог не даёт исходники!
Re[4]: Аналог strchr и strstr
От: Erop Россия  
Дата: 09.09.06 10:21
Оценка:
Здравствуйте, UNI_X, Вы писали:

UNI>Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?


Тебе же уже писали strstr функция называется!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Аналог strchr и strstr
От: UNI_X Россия  
Дата: 09.09.06 11:36
Оценка:
Здравствуйте, Erop, Вы писали:

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


UNI>>Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?


E>Тебе же уже писали strstr функция называется!


Во блин... точно писали... я конечно дико извеняюсь, попутал что-то я совсем самому смешно
Я бы изменил мир, но бог не даёт исходники!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.