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

Посимвольная обработка текстового файла: распределение всех слов по длине - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread799097.html
Доброго времени суток... Необходимо выполнить следующее задание: Найти сумму первых шести элементов массива и записать вместо последнего элемента. (массив из 10 элементов) ВНИМАНИЕ! Нужно...
C++ Размер вектора Подскажите функцию для класса vector, которая будет возвращать размер памяти, который занимает вектор. http://www.cyberforum.ru/cpp-beginners/thread799090.html
Проверьте ошибки пожалуйста в коде C++
Всем Доброго времени суток. Написал программу крестики нолики. Она ,что та не работает поможете? #include<Windows.h> #include<iostream> #include<iomanip> #include <stdio.h> #include...
Работа с файлами, структуры C++
Создать файл, содержащий сведения об отправке. Структура записи: номер поезда, станция назначения, время отправления, время в пути, наличие билетов. Написать программу, которая позволяет получить...
C++ Высчитать значение выражения с приоритетами http://www.cyberforum.ru/cpp-beginners/thread799075.html
Дана строка символов, представляющих собой арифметическое выражение, содержащее только знаки +,-,*,/,(,) и строчные буквы английского алфавита. Требуется подсчитать результат выражения. Вход...
C++ Двумерный массив через вектор Задача состоит в том, что надо создать массив строк через вектор, т.е. я хочу иметь возмость изменять как количество строк, так и их длину. подробнее

Показать сообщение отдельно
Черный ворон
130 / 124 / 6
Регистрация: 31.01.2012
Сообщений: 435
10.03.2013, 19:22
w0nder, ну попробую на примере. представим, что у нас файл выглядит так:
C++
1
1 12 12 12 123 1234
теперь запуская программу:
предполагаем, что в файле нет слов длиннее 25 букв
C++
1
int count[25];
считаем, что пока мы не начали читать количество слов с любым количеством букв в нем равно нулю
C++
1
for (int i=0; i<n; i++) count[i]=0;
открываем файл:
C++
1
ifstream input ("D:\\1.txt");
C++
1
2
3
4
5
6
7
8
9
10
11
while (!input.eof()){ //пока не добрались до конца файла
        input.get(c); //считываем из него один символ
        if (!check(c)){ //если это не разделитель
                t++; //то в текущем слове количество букв увеличиваем на единицу и переходим к следующему символу
        }
        else //если символ - разделитель
        {
                count[t-1]++; //то в ячейке массива с индексом t-1(потому что индексация у массива с нуля) увеличиваем значение на 1 
                t=0; //обнуляем количество букв в текущем слове и переходим к следующему символу
        }
}
таким образом в нулевой ячейке массива хранится количество однобуквенных слов
в первой - двухбуквенных
во второй - трех
итд.

для случая тестового файла результат будет
1
3
1
1

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