Доброго времени суток, господа. Сразу извеняюсь — вопрос тупой... иначе никак не назовешь, но тем не менее. Есть такие замечательные функции в Си: strchr и index (находятся в string.h) аналогичные по своему назначению. Обе они ущет первое вхождение подстроки в строке. Мне вот только один момент не нравится, когда-то я VB изучал, так вот там есть такая функция InStr она тоже ищет вхождение строки в строке, но можно ещё и указывать начало поиска, т.е. начиная с какого символа функция должна искать это самое вхождение. Вункции Си этого маленького, но приятного достоинства лишены, есть ли какие-нибудь аналоги, способные удовлетворить такому условию (возможность указать позицию начала поиска)?
P.S. Ответы типа: "сам что ли написать не можешь" просьба не писать. Во-первых интересуюсь я не столько потому что писать лень, сколько потому что хочу знать о возможном наличии таких функций, во-вторых прога моя и так уже шире газеты, хотелось бы решить проблему без лишних выкрутасов
Здравствуйте, 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-го символа
Здравствуйте, 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); // со след элемента, за первым из найденной подстроки
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, UNI_X, Вы писали:
UNI>Всем спасибо. Все ясно.
Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?
Здравствуйте, UNI_X, Вы писали:
UNI>Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?
Тебе же уже писали strstr функция называется!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, UNI_X, Вы писали:
UNI>>Что-то я похоже поспешил тему закрывать . Тут ещё один вопросик возник. Если мне нужно найти не символ, а подстроку в строке, то как мне быть? Из прототипа функции strchr видно что второй параметр, это всего один символ (char * strchr(const char *string, int c);) а если в строке bla bla bla мне нужно найти la, как быть?
E>Тебе же уже писали strstr функция называется!
Во блин... точно писали... я конечно дико извеняюсь, попутал что-то я совсем самому смешно