Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Ника))
41 / 41 / 20
Регистрация: 08.12.2010
Сообщений: 340
#1

Сравнение двумерного массива созданного из двух строк - C++

24.02.2015, 12:18. Просмотров 409. Ответов 2
Метки нет (Все метки)

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

Программа в Dev-C++:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <locale>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
int hislopel;
 
 
 
int main(int argc,char* argv[]){
setlocale(LC_CTYPE,"rus");
int kolvo1,kolvo2;
cout<<"Введите количество слов в первом и втором предложении";
cin>>kolvo1>>kolvo2;
char  text[kolvo1],*p, *razd=" .,",*p2;
char massiva[20][10];
char massivb[20][10];
cout << "введите текст первого предложения:";
gets(text);
char text2[kolvo2];
cout<<"введите текст второго предложения:";
gets(text2);
cout <<endl<< "Текст 1-go "<< text<<endl;
cout <<endl<< "Текст 2-go "<< text2<<endl;
int i=0,j=0; //i-колличество слов /j -количество букв в слове
p=strtok(text,razd);         // Выделение первого слова текста
    while (p)                    // Пока можно выделить слово запихивать его в двумерный массив
        {
            hislopel=strlen(p);
                for(int per=0;per<hislopel;per++){
                        massiva[i][per]=p[per];}
//cout << "\n слово "<< massiva[i]<<endl; i++;         // Определение длины слова
//cout<<massiva[i++]<<endl;
                        p=strtok(NULL,razd);         // Выделение второго, третьего, и т.д. слов
        }
int i2=0,j2=0;
p2=strtok(text2,razd);
while(p2){
    int hislopel2=strlen(p2);
        for(int per2=0;per2<hislopel2;per2++){
            massivb[i2][per2]=p2[per2];}
//  cout<<massivb[i2]<<"-Это второе"<<endl;j++;
                i2++;
                p2=strtok(NULL,razd);
        }
 
cout<<endl<<endl;
int hisloSlovOne=0;
int chethic=0;
int k=0;
    while(hisloSlovOne<=kolvo1){ //пока число несравняется с количеством слов
//cout<<massiva[hisloSlovOne]<<endl;
int kolvoSimbol2=strlen(massiva[hisloSlovOne]);
    for(int g=0;g<kolvo2;g++){ //позиция слова во втором предложении
        for(int k=0;k<kolvoSimbol2;k++){ //символ слова
        if(massiva[hisloSlovOne][k]==massivb[g][k]){cout<<"счетчик увеличился";chethic++;
        }
    }
    }
 
if(chethic!=0){
    cout<<"Слово: "<<massiva[hisloSlovOne]<<"\t упоминается во втором предложении "<< chethic<<"\tраз";
}
cout<<"конец цикла "<<endl;
chethic=0;hisloSlovOne++; //обнуление счетчика и увелечения сверяемого слова
}
 
}
Просьба указать на ошибки именно в моем коде(если он конечно не нулевой ).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2015, 12:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение двумерного массива созданного из двух строк (C++):

Сравнение элементов двумерного массива
Доброго времени суток. Нужно написать программу, которая проверяет, есть ли во...

Сравнение элементов двумерного массива
извините помогите пожалуйста . дан двумерный массив int a; 1 )как проверить...

Сравнение элементов двумерного массива
Моя задача сделать программу в которую вначале водят данные типо ip (матрица из...

Сравнение двух строк
Сравнение двух строк Как прервать цикл если введена пустая строка? Если :...

Сравнение двух строк
Здравствуйте! возникла у меня небольшая проблема со сравнением двух строк...

Сравнение двух строк
Написать функцию, выполняющую сравнение строк (с игнорированием множественных...

2
MakeEasy
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
24.02.2015, 16:09 #2
при вводе первого предложения поставить пробел то второе он вводить уже не требует а сразу работает далее, почем не знаю.
Вместо cout<< используй cout.getline().
0
Ника))
41 / 41 / 20
Регистрация: 08.12.2010
Сообщений: 340
24.02.2015, 16:49  [ТС] #3
cout.getline() -- хотел сказать cin.getline(text,sizeof(kolvo1)); =) проблему это не решает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2015, 16:49
Привет! Вот еще темы с решениями:

Сравнение элементов двумерного динамического массива
Для работы программы мне нужно сравнивать элементы двумерного динамического...

Сравнение элементов в столбцах двумерного массива
Как реализовать с матрицей(столбцы-12, строки-20). Сравнить элементы второго и...

Сравнение двух строк string
Добрый день. Никак не пойму почему не хочет работать такой способ сравнения...

Сравнение двух строк оператором ==
Мое почтение, уважаемые форумчане! Делаю шаблонный класс и случайно столкнулся...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru