0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
1

В новый файл записать самую длинную фразу из данного файла, и фразу с наибольшим количеством слов

23.12.2020, 14:53. Показов 1944. Ответов 1
Метки си (Все метки)

Author24 — интернет-сервис помощи студентам
Дан файл, содержащий некоторый текст. В новый файл
записать самую длинную фразу и фразу с наибольшим количеством
слов.

Буду очень благодарен за решение.Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2020, 14:53
Ответы с готовыми решениями:

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

Дан файл, содержащий некоторый текст. В новый файл записать самую длинную фразу
Дан файл, содержащий некоторый текст. В новый файл записать самую длинную фразу и фразу с...

Считать с файла строку и найти в ней найти самое длинное слово и самую длинную фразу
Из текстового файла прочитать строку и найти в ней найти самое длинное слово и самую длинную фразу

Найти в тексте самое длинное слово и самую длинную фразу
В школе преподаватель написал на доске не большой текст. Вызвал к доске ученика и попросил его...

1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
26.12.2020, 11:20 2
Лучший ответ Сообщение было отмечено kzry как решение

Решение

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define SENTENCE_DELIM ".?!"
#define MAX_BUF_SIZE 200
 
int main()
{
    FILE *file1 = fopen("in.txt", "r");
    
    if (!file1) {
        fprintf(stderr, "Error: File 'in.txt' not found.\n");
        return 1;
    }
    
    char buf[MAX_BUF_SIZE];
    int bufEnd = 0;
    
    char sentenceWithMaxLength[MAX_BUF_SIZE] = "";
    char sentenceWithMaxWords[MAX_BUF_SIZE] = "";
    
    int insideSentence = 0;
    int sentenceLength = 0;
    int numberOfWords  = 0;
    int newWord = 1;
    
    int maxSentenceLength = 0;
    int maxNumberOfWords  = 0;
    int numberOfSentences = 0;
    
    int c;
    while ( (c=getc(file1)) != EOF )
    {
        if ( ! insideSentence )
        {
            if (isalpha(c))
            {
                bufEnd = 0;
                insideSentence = 1;
                sentenceLength = 0;
                numberOfWords = 0;
                newWord = 1;
            }
            
            else continue;
        }
 
        sentenceLength++;
        buf[bufEnd++] = c;
        
        if (bufEnd >= MAX_BUF_SIZE)
        {
            fprintf(stderr, "Error: Sentence length >= %d.\n", MAX_BUF_SIZE);
            return 1;
        }
 
        if (isalpha(c))
        {
            if (newWord) {
                numberOfWords++;
                newWord = 0;
            }
        }
        else if ( ! strchr(SENTENCE_DELIM, c) )
        {
            newWord = 1;
        }
        else
        {            
            buf[bufEnd] = '\0';
            
            if (sentenceLength > maxSentenceLength)
            {
                maxSentenceLength = sentenceLength;
                strcpy(sentenceWithMaxLength, buf);
            }
            
            if (numberOfWords > maxNumberOfWords)
            {
                maxNumberOfWords = numberOfWords;
                strcpy(sentenceWithMaxWords, buf);
            }
                
            numberOfSentences++;
            insideSentence = 0;
            
            //printf("sentence: %s\n", buf);
            //printf("len: %d, words: %d\n\n", sentenceLength, numberOfWords);
        }
    }
    
    fclose(file1);
    
    //printf(" ########### \n\n");
    printf("Longest sentence:\n  %s\n", sentenceWithMaxLength);
    printf("  length: %d\n\n", maxSentenceLength);
    
    printf("Sentence with max number of words:\n  %s\n", sentenceWithMaxWords);
    printf("  words: %d\n\n", maxNumberOfWords);
    
    printf("Total number of sentences: %d\n", numberOfSentences);
    return 0;
}
Предполагается, что текст записан в однобайтовой кодировке. Тестировалось только на латинских буквах.

Добавлено через 1 минуту
Совсем забыл, что результат нужно записать в другой файл. Это вы сами исправьте.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2020, 11:20
Помогаю со студенческими работами здесь

В заданном тексте найти самое длинное слово и самую длинную фразу.
В заданном тексте найти самое длинное слово и самую длинную фразу.

В заданном тексте найти самое длинное слово и самую длинную фразу
В заданном тексте найти самое длинное слово и самую длинную фразу, я знаю что это не очень сложно...

В заданном тексте найти самое длинное слово и самую длинную фразу
У заданном тексте найти самое длинное слово и самую длинную фразу

В заданном тексте найти самое длинное слово и самую длинную фразу
Если со словом я хоть как-то справился, то с фразой просто ахтунг. Помогите пожалуйста. Вот код...

В заданном тексте найти самое длинное слово и самую длинную фразу
В заданном тексте найти самое длинное слово и самую длинную фразу

Файл: Записать в файл самую длинную и самую короткую строку из исходного файла.
Условие задачи: создайте текстовый файл с количеством строк с‹=10 . Создайте новый текстовый файл и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru