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

Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
02.04.2011, 09:17     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #1
Дан файл, содержащий текст на русском языке, в котором встречаются некоторые 2 слова. определить сколько раз эти слова встречаются в тексте и сколько непосредственно друг за другом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 09:17     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом.
Посмотрите здесь:

C++ Ввести строку и слово. Определить и вывести, сколько раз встречаются в строке буквы, перечисленные в слове.
Ввести строку и слово. Определить и вывести, сколько раз встречаются в строке буквы, перечисленные в слове. C++
Дана строка, содержащая текст на русском языке и некоторые 2 слова. Определить, сколько раз они входят непосредственно друг с другом. C++
Подсчитать, сколько раз в строке встречаются одинаковые слова C++
Определить сколько раз данное слово встречается в тексте C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
02.04.2011, 13:33     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #2
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
#include<iostream>
#include<vector>
#include<fstream>
#include<algorithm>
#include<sstream>
#include<cctype>
#include<windows.h>
#include<string>
#define DEBUG false
 
int main(){
    char text[1024], oem[sizeof(text)], word1[20], word2[20];
    std::cout<<"vvedite slovo 1\n";
    std::cin>>word1;
    std::cout<<"vvedite slovo 2\n";
    std::cin>>word2;
    std::fstream fs("2.txt");
    if(!fs){std::cerr<<"File not found\n"; return 1;}
    fs.getline(text, sizeof(text), '\0');
    #if DEBUG
        CharToOem(text, oem);
        std::cout<<oem<<"\n";
    #endif
    for(char *p=text; *p; ++p){
        if(!(*p>='А'&&*p<='я'||*p=='Ё'||*p=='ё'||isalpha(*p))) *p=' ';
        else if(*p>='А'&&*p<='Я') *p+=32;
        else if(*p=='Ё')*p='ё';
        else if(isupper(*p)) *p=tolower(*p);
    }
    CharToOem(text, oem);
    #if DEBUG
        std::cout<<oem<<"\n";
    #endif
    std::stringstream ss(oem);
    std::vector<std::string> v;
    while(ss>>oem) v.push_back(oem);
    std::cout<<"vsego: "<<std::count_if(v.begin(), v.end(), [&](std::string val){return val==word1||val==word2;})<<"\n";
    int cou_adj=0;
    #if DEBUG
        for(int i=0; i<v.size(); i++){
            std::cout<<v[i]<<"\n";
        }
    #endif
    for(auto it=v.begin(); it!=--v.end(); ++it){
        if(*it==word1&&*(it+1)==word2||*it==word2&&*(it+1)==word1) ++cou_adj;
    }
    std::cout<<"ryadom: "<<cou_adj<<"\n";
}
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
03.04.2011, 20:59  [ТС]     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #3
fatal error C1017: invalid integer constant expression
в строке
C++
1
#if DEBUG
Если можно, подскажите что это за ошибка и как исправить.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
03.04.2011, 22:01     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #4
все подобные блоки
C++
1
2
3
4
#if DEBUG
    CharToOem(text, oem);
    std::cout<<oem<<"\n";
#endif
можно удалить
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
03.04.2011, 22:19  [ТС]     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #5
удалил - 22 ошибки((
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
07.04.2011, 00:21  [ТС]     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #6
Проблема все еще актуальна. Помогите пожалуйста.
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
10.04.2011, 16:54  [ТС]     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #7
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include "windows.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"");
int num = 0 , wordlen, differ, counter;
char word[100] , inputword[100], test;
counter=0;
cout<<"Введите искомое слово: ";
int cp=GetConsoleCP(); 
SetConsoleCP(1251); 
cin>>inputword;
SetConsoleCP(cp); 
 
cout<<endl;
FILE * str;
str = fopen("E:text.txt","r");
while(!feof(str))
{
differ = 0;
wordlen=0;
fscanf(str,"%s",word);
while(word[wordlen] != 0)
wordlen++;
for(int i = 0; i < wordlen; i++)
{
if((word[i]!=inputword[i])&&((((int)word[i]>64)&&((int)word[i]<123))||(((int)word[i]>(-65))&&((int)word[i]<0))))
differ++;
}
if(differ == 0)
counter++;
}
cout<<"Слов найдено: "<<counter;
_getch();
return 0;
}
программа работает не совсем правильно, буду благодарен, если кто-нибудь решит исправить)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2011, 22:59     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом.
Еще ссылки по теме:

C++ Определить, сколько раз в тексте повторяется первое слово
C++ Какие буквы и сколько раз встречаются в этом тексте.
C++ C++ Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, сколько раз заданный символ стоит на четных местах

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

Или воспользуйтесь поиском по форуму:
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
22.04.2011, 22:59  [ТС]     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. #8
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
using namespace std;
string convert(string S)
{
 for (unsigned int i=0; i<S.size(); i++)
 if ((S[i]>=-128)&&(S[i]<=-81))
 S[i] += 64;
 else if ((S[i]>=-32)&&(S[i]<=-17))
 S[i] += 16;
 else 
 {
 cout << "Это не русское слово";
 exit(1);
 }
 return S;
}
void main()
{
 setlocale (LC_ALL, "Russian");
 string s1,s2,s3,s4="";
 int count1=0, count2=0, count3=0, count4=0;
 cout << "Введите первое слово ";
 cin >> s1;
 s1=convert(s1);
 cout << "Введите второе слово ";
 cin >> s2;
 s2=convert(s2);
 cout << endl;
 ifstream file("file.txt");
 while (!file.eof())
 {
 file >> s3;
 if ((s4==s1)&&(s3==s2)) count3++;
 if ((s4==s2)&&(s3==s1)) count4++;
 if(s3==s1) count1++;
 if(s3==s2) count2++;
 s4=s3;
 }
 cout << "Слово " << s1 << " встречается в тексте " << count1 << " раз(а)" << endl;
 cout << "Слово " << s2 << " встречается в тексте " << count2 << " раз(а)" << endl;
 cout << "Второе слово идет за первым " << count3 << " раз(а)" << endl;
 cout << "Первое слово идет за вторым " << count4 << " раз(а)" << endl;
 _getch();
}
рабочий вариант программы
Yandex
Объявления
22.04.2011, 22:59     Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом.
Ответ Создать тему
Опции темы

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