• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Позиции Вхождения Второй Строки В Первую

  • Автор темы siner
  • Дата начала
S

siner

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

C++:
int main(int argc, char* argv[]) {
char str[100], substr[50];
printf("Vvedi stroku:"); gets(str);
printf("Vvedi podstroku:"); gets(substr);  
char* p;
// c - счетчик вхождений.
// i - индекс символа, начиная с которого ищем подстроку.
for (int c = 1, i = 0; i < 100 && (p = strstr(&str[i], substr)); i++)
printf("Poziciya vhozhdeniya #%d: %d\n", c++, i = p - str);
_getch();
return 0;}

Что-то не работает. Ввожу 1ую строку, 2ую строку. Программа результат не выводит. Подскажите, пожалуйста, как это можно исправить?
 
W

Whatka


C++:
//	
char *p,*p1;
p1=str;
for(int c=0,i=1;;i++)
{
p=strstr(p1,substr);
if(p)
cout<<p<<" "<<p-str<<" "<<++c<<"\n";
else
break;
p1=&p1[strlen(substr)*i];
}
//
 
R

rrrFer

Но да, я только что ответил на соседнем форуме )

Раз запостил вопрос всюду - сообщи что он уже снят. А-то чтобы помочь люди время теряют иногда )
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!