Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - помогите решить задачу

Ответить
Настройки темы
C/C++ - помогите решить задачу

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 23:25, 31-05-2015

 

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Примерно так
Код: Выделить весь код
#include <stdio.h>

void main()
{
unsigned char c; // введенный символ
char buf[1024]; // буфер для строки
int count=0; // подсчет количества строк начинающейся с введенного символа

scanf("%c", &c); // ввод символа

FILE* f = fopen("st1.txt", "r"); // открытие файла
while(!feof(f)) // пока не достигнут конец файла
{
fscanf(f, "%s", &buf); // считать строку
printf("%s\n", buf); // вывести строку
if (buf[0] == c) // совпадает ли начало строки и введенный символ
{
printf("equal\n");
count++; 
}
}

fclose(f);

}

-------
Ehhh.. what's up, doc?..


Отправлено: 11:24, 02-06-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 19
Благодарности: 2

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
#include <fstream>
#include <algorithm>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>

int main()
{
   std::ifstream ifs("file.txt");
   assert(ifs);
   std::string str{std::istreambuf_iterator<char>(ifs), {}};
   std::vector<std::string> lines;
   boost::split(lines, str, boost::is_any_of("\n\r"), boost::token_compress_on);
   for (auto &s : lines) std::cout << s << "\n";

   std::cout << "\n\nEnter letter: ->";
   char ch;
   std::cin >> ch;
   std::cout << "Count of lines beginning on " << ch << ": "
             << std::count_if(lines.begin(), lines.end(), [=](std::string &s){return ch == s.front();})
             << "\n";

   std::cout << "Done.\n";
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:56, 25-06-2015 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - помогите решить задачу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - помогите решить задачу С++ Лена Лебедева Программирование и базы данных 1 04-02-2014 15:09
C/C++ - Помогите решить задачу Urann Программирование и базы данных 11 14-05-2013 11:44
C/C++ - ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ Shok147 Тест-форум 0 14-11-2011 14:02
CMD/BAT - Помогите решить задачу dichlormetan Тест-форум 1 08-11-2011 21:23
C/C++ - Помогите решить задачу NightmaR Программирование и базы данных 1 25-05-2011 21:10




 
Переход