Форум программистов, компьютерный форум CyberForum.ru

Количество подстрок в строке - C++

Восстановить пароль Регистрация
 
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
09.03.2013, 20:53     Количество подстрок в строке #1
Нужно что-бы пользователь ввел 2 строки и ему вывело сообщение о том, сколько раз встречается строка 2 в первой строке. Как это сделать без классов, так как мы пока их не учили, а задание таковое есть..?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2013, 20:53     Количество подстрок в строке
Посмотрите здесь:

C++ Найти количество вхождений подстрок в строку
Подсчитать количество подстрок в текстовом файле C++
C++ В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
Строки. Подсчитайте количество подстрок в строке. Определите длину самого короткого слова. C++
C++ Массивы. Определить количество элементов в каждой строке матрицы А, модуль которых равняется порядковому номеру элемента в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.03.2013, 22:40     Количество подстрок в строке #2
Наличие подстроки в строкеhttp://www.cplusplus.com/reference/cstring/strstr/
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
09.03.2013, 22:52     Количество подстрок в строке #3
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
25
26
27
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
 
 
    string src,sub;
    src="aaa sss ddd aaa aaa";
    sub="aaa";
 
    int start = 0;
       int count = 0;
       int pos = 0;
       for(;;){
           pos = src.find(sub.c_str(),start);
           if (pos != -1){
               start = pos + sub.size();
               count++;
           } else {
               break;
           }
       }
               cout<<"Найдено совпадений "<<count<<endl;
  return 0;
}
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
09.03.2013, 23:02  [ТС]     Количество подстрок в строке #4
Спасибо, но я уже и сам написал функцию))

Вот такая вот она:

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
25
int str_in_str(char *str_long, char* str_short, int size_long, int size_short){
 
    int i,
        j,
        start,
        number=0,
        main_number=0;
 
    for (i = 0; i < size_long; ++i){
        if (str_long[i] == str_short[0]) {
            start = i;
            for (j = 0; j < size_short; ++j) {
                if (str_short[j] == str_long[start]) {
                    number++;
                    start++;
                }
            }
            if (number == size_short) {
                main_number++;
                number = 0;
            }
        }
    }
    return main_number;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
10.03.2013, 08:02     Количество подстрок в строке #5
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
 
size_t strstr_count(const char * str, const char * find){
    size_t count=0;
    const char * p=strstr(str,find);
    while(p){
        ++count;
        p=strstr(++p,find);
    }
    return count;
}
 
 
int main(){
    const char * str="MyMyMy";
    std::cout<<strstr_count(str,"My")<<std::endl;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.03.2013, 10:03     Количество подстрок в строке #6
У меня такое впечатление, что тс просто нужен был алгоритм, без использования библиотечных вызовов. А не только "без классов". Вот тут можно ознакомиться с алгоритмами.
Yandex
Объявления
10.03.2013, 10:03     Количество подстрок в строке
Ответ Создать тему
Опции темы

Текущее время: 05:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru