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

Вывести строки, где есть слова, начинающиеся на букву а - C++

Восстановить пароль Регистрация
 
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
13.08.2014, 11:21     Вывести строки, где есть слова, начинающиеся на букву а #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
28
29
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{ 
     setlocale (0,"");
     
     ifstream Fin; 
     ofstream Fout;
     int p,len; string s,s1;
     Fin.open ("input.txt");
     Fout.open ("output.txt");
 
     while (getline (Fin,s) ) // ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶ ГґГ*éëГ* Fin
       {
         
         len = s.size();
         
         p = s.find (" "); 
         s1 = s.substr (p+1,len); 
         if ( s1[0] == 'Г*') cout << s << endl;
       }
       
     Fout.close(); 
     Fin.close();  
 
   
     system ("PAUSE");
}
Добавлено через 1 минуту
помогите, сделать так , чтобы полностью всю строку проверять до конца, а у меня только до 1го пробела...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 11:21     Вывести строки, где есть слова, начинающиеся на букву а
Посмотрите здесь:

C++ Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Вывести все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву и количество таких слов в каждой строке. C++
C++ Вывести в выходной файл все слова, начинающиеся на заданную букву, и их количество
Найти и вывести все слова начинающиеся и заканчивающиеся на одну и ту же букву (комментирование кода) C++
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
13.08.2014, 11:39     Вывести строки, где есть слова, начинающиеся на букву а #2
Все гораздо проще
C++
1
2
3
4
while (Fin>>s)  // пока не конец файла Fin
       {
              if ( s[0] == 'а') cout << s << endl;
       }
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
13.08.2014, 12:21     Вывести строки, где есть слова, начинающиеся на букву а #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
arzhanok, а не проще ли сразу искать слова начинающиеся на а?:
C++
1
2
while (getline (Fin,s) ) // пока не конец файла Fin
    if ( s.find (" a") != std::string::npos) std::cout << s << std::endl;
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
13.08.2014, 12:35     Вывести строки, где есть слова, начинающиеся на букву а #4
Ilot,
An input iterator addressing the first occurrence of the specified value in the range being searched. If no such value exists in the range, the iterator returned addresses the last position of the range, one past the final element.
Т.е. найдется первое такое слово. А если их в строке несколько, то что?
Если вместо getline использовать >> , то читаться каждый раз будет одно слово.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
13.08.2014, 12:39     Вывести строки, где есть слова, начинающиеся на букву а #5
zss, так название темы:
Вывести строки, где есть слова, начинающиеся на букву а
И
An input iterator addressing the first occurrence of the specified value in the range being searched. If no such value exists in the range, the iterator returned addresses the last position of the range, one past the final element.
Не справедливо для строк. Если поиск неудачен возвращается npos.
Return Value
The position of the first character of the first match.
If no matches were found, the function returns string::npos.
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
13.08.2014, 12:44  [ТС]     Вывести строки, где есть слова, начинающиеся на букву а #6
zss, спасибо, но в твоем варианте у меня выводится только слово на букву а.
Ilot , а в твоем варианте - выводится строка, где есть слово на букву а. то есть то , что мне было нужно.
if ( s.find (" a") != std::string::npos) std::cout << s << std::endl; поясни , пожалуйста, эту строку
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
13.08.2014, 12:48     Вывести строки, где есть слова, начинающиеся на букву а #7
Цитата Сообщение от arzhanok Посмотреть сообщение
поясни , пожалуйста, эту строку
Сперва ищем вхождение в строке си строки " a", если его находим выводим строку. find возвращает npos если поиск был не удачен. Выше же все написано пусть и на буржуйском.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 16:18     Вывести строки, где есть слова, начинающиеся на букву а
Еще ссылки по теме:

В строке, состоящей из слов, найти и вывести на экран все слова, начинающиеся на букву w C++
C++ Вывести слова сообщения начинающиеся и оканчивающиеся на одну и ту же букву
C++ Вывести все слова из строки, начинающиеся с определенной буквы

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

Или воспользуйтесь поиском по форуму:
BlackIce
309 / 171 / 64
Регистрация: 18.01.2014
Сообщений: 387
13.08.2014, 16:18     Вывести строки, где есть слова, начинающиеся на букву а #8
Цитата Сообщение от Ilot Посмотреть сообщение
Сперва ищем вхождение в строке си строки " a"
Еще наверно надо проверить, что сама строка и соответсвенно ее первое слово не начинается на 'a'

C++
1
if (s[0] == 'a' || s.find (" a") != std::string::npos) std::cout << s << std::endl;
иначе, к примеру, строка "an input iterator" не выведется, хотя должна.
Yandex
Объявления
13.08.2014, 16:18     Вывести строки, где есть слова, начинающиеся на букву а
Ответ Создать тему
Опции темы

Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru