С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.07.2022
Сообщений: 1
1

Для каждой строки файла распечатать слово наибольшей длины

15.07.2022, 13:19. Показов 1000. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пусть дан текстовый файл.Для каждой строки распечатайте слово наибольшей длинны.Если их несколько то распечатайте все.(C++)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2022, 13:19
Ответы с готовыми решениями:

Для каждой строки текстового файла распечатать слово наибольшей длины, если их несколько, то распечатать все
Пусть дан текстовый файл. Для каждой строки распечатайте слово наибольшей длины. Если их несколько,...

Для каждой строки текстового файла распечатать слово наибольшей длины
Пусть дан текстовый файл. Для каждой строки распечатайте слово наибольшей длины. Если их несколько,...

Для каждой строки текста распечатать слово наибольшей длины
5. Пусть дан текстовый файл. Для каждой строки распечатайте слово наибольшей длины. Если их...

Текстовый файл. Для каждой строки распечатайте слово наибольшей длины.
Здравствуйте, подскажите пожалуйста как решать такую задачку? "Пусть дан текстовый файл. Для...

6
455 / 322 / 64
Регистрация: 09.03.2016
Сообщений: 3,181
15.07.2022, 18:05 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
49
50
#include <iostream>
#include <fstream>
#include <string>
#pragma warning(disable : 4996)
 
int _tmain(int argc, _TCHAR* argv[])
{
    system("chcp 1251");
    //--------------------------------------        
    std::ifstream fin;
    fin.open("file.txt");// , ifstream::binary
    fin.seekg(0, std::ios_base::end);
    size_t  m_file_size = fin.tellg();//Это размер файла в байтах
    fin.seekg(0, std::ios_base::beg);
    //--------------------------------------
    char *your_mass = new char[m_file_size];
    std::string msg = "";
    size_t cur(0); short i;
    while (getline(fin, msg))//читать в массив построчно пока есть строки
    {
        for (i = 0; i < strlen(msg.c_str()); ++i)
            your_mass[i + cur] = msg[i];// Посимвольно в массив
        *(your_mass + i + cur) = '\n';// Добавил в массив \n
        cur += strlen(msg.c_str()) + 1;
        msg.clear();
    } *(your_mass + cur) = 0x00;// Нультерминатор в конец массива
    
    //------------------------
 int counter(0);
  do{
if ( *(your_mass) == '\n'){ *(your_mass) = '\0'; 
    
    char *pch = strtok(your_mass - counter, " ,.");
    int cnt(0); char *word = NULL;// Под счётчик длины
while (pch != NULL)// пока есть лексемы
    {
if (cnt < strlen(pch)){ cnt = strlen(pch); word = pch; }// Длина слова
    std::cout << pch << "\n";
        pch = strtok(NULL, " ,.");
    }
                                std::cout<<"--------> " << word << "\n";
counter = 0; cnt = 0;// Длина слова
  ++your_mass;//< --------- На след строку
    }
++your_mass; ++counter;
    
    } while (*(your_mass) != '\0');
 std::cin.get();
    return 0;
}
0
455 / 322 / 64
Регистрация: 09.03.2016
Сообщений: 3,181
15.07.2022, 18:07 3
https://www.cyberforum.ru/atta... 1657897663
Вложения
Тип файла: rar file.rar (737 байт, 5 просмотров)
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
15.07.2022, 18:16 4
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
#include <fstream>
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string tmp;
    int l = 0;
    ifstream fin; fin.open("input.txt");
    
    while(!fin.eof())
    {
        fin >> tmp;
        if(tmp.length() > l)
            l = tmp.length();
    }
    
    fin.close();
    fin.open("input.txt");//хотя кнчн можно сделать и через seekg()
    
    while(!fin.eof())
    {
        fin >> tmp;
        if(tmp.length() == l)
            cout << tmp << "\n";
    }
    fin.close();
    
    cin.get();
    return 0;
}
1
455 / 322 / 64
Регистрация: 09.03.2016
Сообщений: 3,181
15.07.2022, 22:39 5
Лучший ответ Сообщение было отмечено Gnom1k как решение

Решение

Преодолел по всем условиям.
Простите за многобукофф.

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
#include <iostream>
#include <fstream>
#include <string>
    #include <vector>
#pragma warning(disable : 4996)
 
int _tmain(int argc, _TCHAR* argv[])
{
    system("chcp 1251");
    //--------------------------------------        
    std::ifstream fin;
    fin.open("file.txt");// , ifstream::binary
    fin.seekg(0, std::ios_base::end);
    size_t  m_file_size = fin.tellg();//Это размер файла в байтах
    fin.seekg(0, std::ios_base::beg);
    //--------------------------------------
    char *your_mass = new char[m_file_size];
    std::string msg = "";
    size_t cur(0); short i;
    while (getline(fin, msg))//читать в массив построчно пока есть строки
    {
        for (i = 0; i < strlen(msg.c_str()); ++i)
            your_mass[i + cur] = msg[i];// Посимвольно в массив
        *(your_mass + i + cur) = '\n';// Добавил в массив \n
        cur += strlen(msg.c_str()) + 1;
        msg.clear();
    } *(your_mass + cur) = 0x00;// Нультерминатор в конец массива
    
    //------------------------ РАБОТА ----------
 int counter(0);
  do{
if ( *(your_mass) == '\n'){ *(your_mass) = '\0'; 
std::vector<std::string> abc;//<--------------------------- vector
    char *pch = strtok(your_mass - counter, " ,.");
    int cnt(0);
while (pch != NULL)// пока есть лексемы
    {
if (cnt < strlen(pch)) cnt = strlen(pch);// Длина слова
              abc.push_back(pch);// Гоним в вектор отдельными словами  
  pch = strtok(NULL, " ,.");
    }
//----------------------------- показ из вектора -------------------
for (int i = 0; i < abc.size(); ++i){// Показать сова одинаковой длины
    if (abc[i].length() == cnt)std::cout << abc[i] << std::endl;
} abc.clear();
std::cout << " ---------- NEW LINE ---------- "<< std::endl;
        counter = 0; cnt = 0;// Длина слова
  ++your_mass;//< --------- На след строку
    }
++your_mass; ++counter;
    } while (*(your_mass) != '\0');
 std::cin.get();
    return 0;
}
Добавлено через 2 минуты
Если не устроит,
можете поменять условия по каким знакам резать слова.
strtok(NULL, " ,.");
2
455 / 322 / 64
Регистрация: 09.03.2016
Сообщений: 3,181
15.07.2022, 22:41 6
https://www.cyberforum.ru/atta... 1657914087
Миниатюры
Для каждой строки файла распечатать слово наибольшей длины  
1
455 / 322 / 64
Регистрация: 09.03.2016
Сообщений: 3,181
15.07.2022, 22:59 7
Можно память освободить.
C++
1
2
3
4
5
6
} while (*(your_mass) != '\0');
 
  delete[] your_mass;
  std::cin.get();
    return 0;
}
Добавлено через 3 минуты
Я добросовестно. Надеюсь на том свете учтёться.
1
15.07.2022, 22:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2022, 22:59
Помогаю со студенческими работами здесь

Дан текстовый файл f. Для каждой строки распечатайте слово наибольшей длины
дан текстовый файл f. для каждой строки распечатайте слово наибольшей длины. если таких слов...

Дан файл F. Вывести на экран, из каждой строки слово наибольшей длины.
Дан файл F. Вывести на экран, из каждой строки слово наибольшей длины.

Дан файл f. Вывести на экран из каждой строки слово наибольшей длины.
Дан файл f. Вывести на экран из каждой строки слово наибольшей длины.

Определить в каждой четной строке текстового файла слово наибольшей длины
Создать текстовый файл, ввод из клавиатуры. Определить в каждом парном ряду слово найбольшей длинны...

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

Текстовый файл: В каждой строке определить слово наибольшей длины
задача 3. Дан текстовый файл f. В каждой строке определить слово наибольшей длины. Результаты...


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

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