Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
36 / 36 / 4
Регистрация: 20.10.2010
Сообщений: 152
1

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

11.10.2014, 23:51. Показов 5495. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код под спойлером по собственным соображениям.
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
 
int main()
{
    int l1,l2,c;
    char s1[100000],s2[1000],*t,*st;
    scanf("%d %d\n",&l1,&l2); //длины строк, хз зачем
    gets(s1); //сами строки
    gets(s2);
    st=s1;
    c=0;
    while (1) {
        t=strstr(st,s2);
        if (t==NULL) break;
        c++;
        st=t+1;.
    }
    printf("%d",c);
    return 0;
}


Эта программа находит число вхождений s2 в s1 (маленькие латинские символы). Одна проблема - она работает не на всех тестах (которые я, естественно, не знаю). И я В УПОР не понимаю, почему. Подразумевается что все "тесты" хорошие (соответствуют условию, которое вкратце описал). Все тесты из головы программа успешно проходит. Прошу помощи, хотя бы намекните в чём проблема.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2014, 23:51
Ответы с готовыми решениями:

Найти количество вхождений одной строки в другую
даны строки 1 и 2. надо найти количество вхождений из строки 1 в строку 2

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

Найти количество вхождений одной текстовой строки в другую
Люди помогите ожалуйста написать программу: Вычисляющую количество вхождений одной текстовой...

Найти количество вхождений одной строки (являющейся подстрокой) в другую
С клавиатуры вводятся две строки. Найти количество вхождений одной строки (являющейся подстрокой) в...

3
78 / 77 / 51
Регистрация: 30.03.2013
Сообщений: 194
12.10.2014, 01:18 2
Лучший ответ Сообщение было отмечено question1 как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
 
int main()
{
  int l1,l2,c;
  scanf("%d %d\n",&l1,&l2);
  char s1[l1],s2[l2],*t,*st;
  gets(s1);
  gets(s2);
  st=s1;
  c=0;
  while (1) {
    t=strstr(st,s2);
    if (!t) break;
    c++;
    st=t+1;
    if (st[0] == '\0') break;
  }
  printf("%d",c);
  return 0;
}
Добавлено через 3 минуты
Чтобы ваша программа получила доступ к чужой памяти достаточно вторую строку ввести пустую, т.е. нажать enter.
1
36 / 36 / 4
Регистрация: 20.10.2010
Сообщений: 152
12.10.2014, 02:23  [ТС] 3
aiwprton805, огромное спасибо!
Я вообще думал, что в Си нельзя указывать переменную как размер массива.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
12.10.2014, 05:00 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
size_t meets_count(const char * str, const char * wrd) {
    return ( str = strstr(str, wrd) ) ? 1 + meets_count(str + 1, wrd) : 0;
}
 
typedef char shortstring_t[256];
#define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 )
 
int main(void) {
    shortstring_t str, wrd;
    
    while ( printf("String: ") && get_string(str) && printf("Word: ") && get_string(wrd) )
        printf("%u meetings.\n", meets_count(str, wrd));
        
    return 0;
}
1
12.10.2014, 05:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2014, 05:00
Помогаю со студенческими работами здесь

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

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

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

Определяет кол-во вхождений одной Паскаль-строки в другую Паскаль-строку.
Здравствуйте. Не могли бы вы мне помочь написать программу, совсем не могу понять как ее написать....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru