Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 01.09.2011
Сообщений: 59

задача на количество совпадений

03.12.2012, 22:16. Показов 1827. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
есть файл, в котором записан текст на английском языке, этот текст я вывожу на консоль, затем пользователь вводит символ, программа должна определить и вывести слово, в котором будет наибольшее число раз встречаться этот символ
вот что есть у меня: программа выводит текст, запрашивает символ, и выводит число слов, которые начинаются с этого символа. помогите передать задачу, надо как то посимвольно считывать файл, и сохранять то слово в массиве. как это написать командами я не знаю. помогите пожалуйста.
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 "stdio.h"      /*файл ввода/вывода при работе с подключаемым текстом*/
#include "stdafx.h"
#include "stdlib.h"
#include <string.h>     /*библиотека для работы со строками*/
#include "iostream"     /*для организации ввода-вывода*/
#include <windows.h>    /*для русского языка*/
#include <conio.h>
#include <ctype.h>
#include <locale.h>
using namespace std;    /*чтобы не писать каждый раз std::cin*/ 
HANDLE hStdout; 
 
///-----------Функция для отображения русских букв-----------///
char bufRus[256];
 
char* Rus(const char* text)
{
CharToOemA(text,bufRus);
return bufRus;
}
////////////////////////////////////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{   
//  setlocale(LC_ALL,"Rus");                    /*для отображенения русского языка*/
    hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
    SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY); 
    FILE *fp=fopen ("my_file.txt","r");         /*открытие файла на чтение (относительный путь файла)*/
    if (NULL == fp)                             /*проверяем наличие файла*/
    {   
        SetConsoleTextAttribute(hStdout,12);    /*задаём цвет текста*/
        printf (Rus("Не удалось открыть файл!\n"));
        return 0;   
    }
 
    char str[1024] = "";                        /*переменная, куда читать файл*/
    int i=0;
    while (!feof (fp))
    {
    str[i]=fgetc(fp);
    SetConsoleTextAttribute(hStdout, 11);
    printf("%c", str[i]);
    i++;    
    }
 
    fclose(fp);                                 /*закрытие соединения с файлом*/
 
    printf(Rus("\n\n"));
    SetConsoleTextAttribute(hStdout,14);
    printf(Rus("Введите символ или букву на английском языке\nПрограмма определит слово с наибольшим вхождением заданного символа\n"));
    SetConsoleTextAttribute(hStdout,15);
    
    char ch = 0;
    ch = getch(); /*запрашиваем 1 символ с клавиатуры*/ 
    printf("%c", ch); /*выводим символ на экран*/
    printf(("\n"));
    int sovp=0;
 
    for (int index=0; index<= sizeof(str); index++)
    {
    if (str[index] == ch) sovp++;
    }
 
        printf(Rus("\nсовпадений ")); 
        printf ("%i\n", sovp); //*выводим символ на экран*
 
    /*printf("Слово с наибольшим вхождение заданного символа\n");*/
    return 0;
 
  }
Добавлено через 2 часа 30 минут
хотя бы подскажите, в каком месте программу нужно править?

Добавлено через 22 часа 50 минут
как перезаписывать слово в массив ???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2012, 22:16
Ответы с готовыми решениями:

Задача на поиск совпадений букв первого слова во втором
Ребят, решите пожалуйста задачу: Даны два слова. Для каждой буквы первого слова (в том числе для повторяющихся в этом слове букв)...

Сравнить два бинарных файла и вывести в label количество не совпадений, или что нет не совпадений
Добрый день ! Прошу помощи в реализации задачи. В программе нужно сравнить два файла (разной длины, или одинаковой). Количество...

Подсчитать количество совпадений
Обьясню в кратце: Нужно написать програму со структурой: 1)фамилия жениха 2)Фамилия невесты 3)Дата регистрации 4)Дата подачи...

1
 Аватар для booker
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
03.12.2012, 23:27
пишу что-то подобное, надеюсь вам поможет
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
70
71
72
73
74
75
76
77
78
79
#include<iostream>
#include<cstring>
#include <clocale>
 
using namespace std;
int numb_words(char*);// функция вычисления кол-ва слов в строке
bool isrusalpha(char*);// isalpha() для кирилицы
int main()
{
    setlocale(LC_CTYPE, "rus");
    char* text = {"The decision to keep residents at nursing homes in flood- prone areas during the hurricane had dire consequences."};
    char** arrwords=new char*[numb_words(text)];
    int w=0; //счётчик слов
    int l=0; //счётчик букв в слове
    bool newword = false;// "флаг новое слово"
    
    //выделяем память для слов
    for(int n=0;n<=strlen(text);n++)
    {
        if(isalpha(*(text+n))) {l++;newword=true;}
        
        if((!isalpha(*(text+n))||n==(strlen(text))-1)&&newword)
        {
        cout<<"new word "<<w<<" "<<"letters " <<l<<endl;
        arrwords[w]=new char[l];
        l=0;w++;newword=false;}
    }
 
    //записываем слова в строки массива указателей на строки
    l=0;
    w=0;
    
    for(int n=0;n<=strlen(text);n++)
    {
        if(isalpha(*(text+n))) 
        {
        *(*(arrwords+w)+(l++))=*(text+n);
        newword=true;
        }
        if((!isalpha(*(text+n))||n==(strlen(text))-1)&&newword)
        {
        *(*(arrwords+w)+l)='\0';
        l=0;w++;newword=false;
        }
    }
            
    cout<<endl;
 
    cout<<numb_words(text)<<endl;
 
        for(int n=0;n<numb_words(text);n++)// выводим массив
    cout<<arrwords[n]<<endl;
    
    delete []arrwords;
        
    cout<<numb_words(text)<<endl;
    
    system("pause");
 
    return 0;
}
 
int numb_words(char*str)
    {
        bool newword = false;
        if (strlen(str)==0)
            return 0;
        int count_words;
        count_words=0;
        for(int n=0;n<strlen(str);n++)
        {
        if(isalpha(*(str+n))) {newword=true;}
        
        if((!isalpha(*(str+n))||n==(strlen(str))-1)&&newword)
        {
        count_words++;newword=false;}
        }
        return count_words;
    }
Добавлено через 2 минуты
Но для вашей цели слова в массив загонять необязательно
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2012, 23:27
Помогаю со студенческими работами здесь

Найти количество совпадений
Вопрос такой - в какое количество магазинов была отправлена продукция 20.03.2013 . Я упростил таблицу, чтобы лишние данные глаза не...

Подсчитать количество совпадений
Здравствуйте! Помогите создать счетчик игроков. В онлайн игре есть аукцион. каждому игроку дается по 50 ходов чтоб его выиграть. Когда...

количество совпадений в числе
и снова всем привет:) и снова небольшой вопрос) нужна прога, чтоб считала количество совпадающих цифр в двух шестизначных числах(1-ое...

Посчитать количество совпадений (count)
здравствуйте! приведу пример. есть табличка, в ней три поля - TelNumber , IMEI, Dates (ни каких идентифицирующих столбцов нет). create...

Посчитать количество совпадений в столбце
Как посчитать кол-во совпадений в столбце. Аналог Excel СчетЕсли. мокрокодер код написал, несоображу как в VBA грамотно вставить


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru