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

Подсчет количества слов

25.10.2014, 15:20. Показов 3366. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два файла, 1.txt и 2.txt

Задание:

1) Скопировать в файл 2.txt только те строки из 1.txt, которые начинаются с буквы "а"
2) Подсчитать количество слов в файле 2.txt

Первая половина кода написана, нужно реализовать второй пункт задания через подсчет пробелов. Спасибо заранее.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string.h>
#include <iostream>
#include <stdio.h>
int main()
{
  FILE * f1;
  FILE * f2;
  char buf[256];
  int L;
  f1=fopen("1.txt","rt");
  f2=fopen("2.txt","wt");
  while(!feof(f1))
   {
    fgets(buf,255,f1);
    L=strlen(buf);
    if(buf[0]=='a')
       fputs(buf,f2);
   }
  fclose(f2);
  fclose(f1);
  //здесь подсчет количества слов
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2014, 15:20
Ответы с готовыми решениями:

Подсчет количества слов
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов, имеющих нечетную длину; вводит на экран частоту...

Подсчет количества слов
Допустим, дана строка: &quot;129 s23 ertr 234 0 e&quot; Как подсчитать количество слов, состоящих только из латинских букв?

Подсчет количества слов в предложении
Здравствуйте. Помогите, пожалуйста, с лабой. 1. Дана строка символов. Распечатать слова, отличные от последнего, оставив в каждом слове...

7
 Аватар для edw1n
7 / 7 / 2
Регистрация: 12.11.2012
Сообщений: 114
25.10.2014, 15:52
Все довольно просто. Читаем построчно файл, и в каждой строке считаем кол-во слов.
Считать слова в строке можно таким способом:
C++
1
2
3
4
5
6
7
8
    
if ( str[0] != ' ' ) numWords++;
 
for ( i = 0; i < strlen(str)-1; i++ ) {
 
     if ( (str[i] == ' ') && (str[i+1] != ' ') ) numWords++;
 
}
1
32 / 5 / 0
Регистрация: 15.12.2013
Сообщений: 72
25.10.2014, 16:00  [ТС]
edw1n, а можно вашу реализацию с первой частью кода соединить? у меня что-то не получается
0
 Аватар для edw1n
7 / 7 / 2
Регистрация: 12.11.2012
Сообщений: 114
25.10.2014, 16:27
Так как у вас каждое слово в файле 2 на новой строке, то достаточно лишь подсчитать кол-во записей в файл 2 во время копирования с файла 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
#include <string.h>
#include <iostream>
#include <stdio.h>
int main()
{
  FILE * f1;
  FILE * f2;
  char buf[256];
  int L, counter = 0;
  f1=fopen("1.txt","rt");
  f2=fopen("2.txt","wt");
  while(!feof(f1))
   {
    fgets(buf,255,f1);
    L=strlen(buf);
    if(buf[0]=='a')
       {
         fputs(buf,f2);
         counter++;
       }
   }
  fclose(f2);
  fclose(f1);
  printf("Number of words in file 2 - %d\n", counter);
  system("pause");
  return 0;
}
1
32 / 5 / 0
Регистрация: 15.12.2013
Сообщений: 72
25.10.2014, 17:28  [ТС]
edw1n, вы не учли то что в строке может быть несколько слов. Ваш код подсчитывает количество строк получается. Попробовал проверить работу программы когда в строке несколько слов - она не считает правильно (если в строке больше одного слова).

P.S я просил помочь в реализации с помощью подсчета пробелов, т.к таким способом количество слов верно вычисляется
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
25.10.2014, 17:54
Первая половина кода написана, нужно реализовать второй пункт задания через подсчет пробелов.
А если пробелов между словами больше одного?
PS Открыть файл как поток (ifstream), читать посимвольно. Дальше вроде как тривиально.
0
32 / 5 / 0
Регистрация: 15.12.2013
Сообщений: 72
25.10.2014, 18:53  [ТС]
А если пробелов между словами больше одного?
Пробел один между словами.

PS Открыть файл как поток (ifstream), читать посимвольно. Дальше вроде как тривиально.
Если бы я знал как реализовать, не просил бы помощи
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
25.10.2014, 22:24
Цитата Сообщение от steps Посмотреть сообщение
Если бы я знал как реализовать, не просил бы помощи
C++
1
2
3
4
5
6
ifstream stream("1234.txt");
int count =0;
while(stream.good())
    if(isspace(stream.get()))
        ++count;
cout<<count<<endl;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2014, 22:24
Помогаю со студенческими работами здесь

Подсчет количества одинаковых слов
http://pastebin.com/s8Ewa9Dp // Zadanie2.cpp: определяет точку входа для консольного приложения. // /* 7. Дан текст. Группы...

Подсчет количества слов в файле
Дан текстовый файл. Определить, сколько раз каждое слово встречается в тексте. Слова выводить на экран в алфавитном порядке по 20 слов.

Подсчет количества слов в строке
Помогите пожалуйста написать программу для подсчета количества слов в строке

Подсчет количества уникальных слов
Добрый день. Есть программа для подсчета количества слов тексте: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt;...

Подсчет количества слов в строке
Все привет. Помогите пожалуйста написать код на с++ С клавиатуры вводится текстовая строка. Составить программу, которая подсчитает...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru