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

Подсчет в строке символов вводимых с клавиатуры - C++

Восстановить пароль Регистрация
 
kosikdr
Сообщений: n/a
13.11.2010, 14:52     Подсчет в строке символов вводимых с клавиатуры #1
День добрый.
Стоит задача ввести с клавиатуры строку потом вводим вторую строку и сравниваем совпадение символов.
пример:
строка 1:asdfafsdfsaaafsdfsfsaadsfsaafsdfaa
строка 2: аа
результат: 5 - тоесть совпадение ааа с аа считает 2 раза.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
    char string1[80];
    char string2[80];
    int result;
 
    cout << "enter first string: " << endl;
    cin >> string1;
 
    cout << "enter second string: " << endl;
    cin >> string2;
 
// грубо говоря ввели 2 строки
далее не понятно как делать проверку совпадений?
Предполагаю что через цикл.
C++
1
2
for (strinr2 != '\0')
if /вроде есть функция которая находит совпадение до первого совпадения/ (string1, string2)

буду примного благодарен в оказанной помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2010, 14:52     Подсчет в строке символов вводимых с клавиатуры
Посмотрите здесь:

Подсчет вводимых символов C++
Подсчет символов в строке, как работает? ( С++ ) C++
C++ Подсчет символов в строке
C++ Подсчет количества символов в строке
C++ Подсчет символов в строке. Программа не компилируется
C++ Подсчет количества различных символов в строке
C++ Как ограничить количество вводимых символов с клавиатуры?
C++ Подсчет количества символов в строке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DAgot_
 Аватар для DAgot_
22 / 22 / 1
Регистрация: 03.01.2010
Сообщений: 68
13.11.2010, 16:20     Подсчет в строке символов вводимых с клавиатуры #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int count_of_substrings(string src, string sub){
    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;
        }
    }
    return count;
}
Для поиска подстрок запускаем бесконечный цикл. Это делается т.к. мы не знаем точно сколько вхождений будет. А если бы знали, то и алгоритм нам не нужен был бы.
Первым же делом ищем вхождение подстроки в строку. Результат – позиция первого символа подстроки в строке. Т. к. искать начинаем с начала строки, то значение start = 0.
Итак, если мы нашли хот одно вхождение, то увеличиваем позицию для начала старта. Приведенная мною формула экономит процессорное время, т.к. пропускает найденную подстроку, и программа в этой части поиск уже не производит.
Также мы увеличиваем значение счетчика. И всё! В конце выводим значение счетчика.
kosikdr
Сообщений: n/a
15.11.2010, 10:59     Подсчет в строке символов вводимых с клавиатуры #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
#include "stdafx.h"
#include <iostream>
#include "string.h"
#include <stdlib.h>
 
using namespace std;
 
int search1 (char *str1, char *str2) {
    int res = 0;
    for(;(str1 = strstr(str1,str2))!= NULL; str1++,res++);
    return res;
}
 
int main(int argc, char **argv) {
    char *str1 = new char[100];
    char *str2 = new char[100];
    cout << "Enter string: ";
    cin.getline(str1,99);
    cout << "Enter string 2: ";
    cin.getline(str2,99);
    cout << "Result: " << search1(str1, str2) << endl;
    return 0;
}
еще вот одно решение
Yandex
Объявления
15.11.2010, 10:59     Подсчет в строке символов вводимых с клавиатуры
Ответ Создать тему
Опции темы

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