Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2

Найти количество вхождений подстрок в строку

02.04.2011, 08:22. Показов 3775. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, в input.txt лежит строка размером до 250 символов, в output.txt нужно найти количество вхождений в нее подстрок, а именно ">>->" и "<-<<".
Вроде задача пустяковая, но разобраться не могу..
Пробовал делать strstr до тех пор, пока подстрока не перестанет встречаться(найденный фрагмент удалял), однако такой алгоритм не подошел, неверно находилось количество вхождений..
P.S. можно использовать только stdio.h и string.h
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2011, 08:22
Ответы с готовыми решениями:

Найти количество вхождений строки S0 в строку S
Введении строки S и S0. Найти количество вхождений строки S0 в строку S.

Найти количество вхождений строки s1 в строку s2
Помогите найти количество вхождений строки s1 в строку s2. Желательно самым простым кодом.

Найти количество вхождений строки S0 в строку S
Даны строки S и S0. Найти количество вхождений строки S0 в строку S.

3
126 / 126 / 42
Регистрация: 12.03.2011
Сообщений: 227
02.04.2011, 11:44
А как-то так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdio.h"
#include "string.h"
 
#define MAX 250
int main(int argc, char* argv[])
{
FILE*f;
char buff[MAX];
char sub[MAX];
int k = 0;
f = fopen("test.txt","r");
fgets(buff,MAX,f);
printf("Substring: ");
gets_s(sub,MAX);
char*p = strstr(buff,sub);
while(p != NULL)
{
   p = strstr(p+1,sub);
   k+=1;
}
printf("%d",k);
fclose(f);
return 0;
}
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.04.2011, 16:46  [ТС]
Переписал под себя, k=0 стабильно...
Да и не понятен сам алгоритм.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
main(){
    freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    char a[250];
    char b[4]=">>->";
    char c[4]="<-<<";
    scanf("%s",&a);
    char*p=strstr(a,b);
    int k=0;
    while (p)  {
        p=strstr(p+1,b); k++;}
    char*t=strstr(a,c);
    while (t){
        t=strstr(t+1,c); k++; }
    printf("%i",k);
    return 0;
}
Не происходит ни одной итерации из циклов, т.е. p=strstr(a,b); равно нулю... а и b адекватно вроде считываются.
0
126 / 126 / 42
Регистрация: 12.03.2011
Сообщений: 227
02.04.2011, 17:09
Считывать лучше так
C
1
fgets(a,250,stdin);
вместо
C
1
scanf("%s",&a);
А алгоритм довольно прост, цикл идёт пока не закончатся подстроки. при нахождении подстроки, указатель передвигаем вперёд.
Вот про функцию strstr
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2011, 17:09
Помогаю со студенческими работами здесь

Рекурсия: найти количество вхождений строки s2 в строку s1
Помогите пожалуйста!! Задача: Найти количество вхождений строки s2 в строку s1 при помощи рекурсии. Циклы не использовать.

Найти количество вхождений заданного слова в строку
Подскажите, как решить данную задачу? Сама задача:Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных...

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

Найти количество вхождений каждой буквы в заданную строку
спросить у человека строку, надо посчитать количество вхождений каждой буквы и вывести статистику, например vvedi stroku: hello WORLD L -...

Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений
Помогите исправить ошибку. Как вывести номера первых позиций вхождений слова мама? Подсчитать количество вхождений слова «мама» в строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru