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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
#1

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

13.08.2014, 11:21. Просмотров 872. Ответов 7
Метки нет (Все метки)

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го пробела...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 11:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести строки, где есть слова, начинающиеся на букву а (C++):

Вывести все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву и количество таких слов в каждой строке. - C++
Ребят, всем привет!; Помогите, пожалуйста, решить задачу со строками на С++; Даны две строки, содержащие не более 100 символов. ...

1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г - C++
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором...

Вывести слова сообщения начинающиеся и оканчивающиеся на одну и ту же букву - C++
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинани, в конце которого...

Удалить из строки все слова, начинающиеся на гласную букву - C++
Здравствуйте, помогите написать программу. за скудностью своих знаний уже часов 5 сижу. вот с чего я начинал: #include&lt;iostream&gt; ...

Найти слова, начинающиеся и оканчивающиеся на одну и ту же букву; слова, содержащие букву, встречающуюся N раз - C++
Пусть задано множество строк. Вывести: а) слова, начинающиеся и оканчивающиеся на одну и ту же букву б) слова, которые содержат букву,...

Вывести в выходной файл все слова, начинающиеся на заданную букву, и их количество - C++
Вводим название 2х файлов, затем букву, программа должна найти и вывести в выходной файл все слова, начинающиеся на заданную букву и их...

7
zss
Модератор
Эксперт С++
6475 / 6038 / 1980
Регистрация: 18.12.2011
Сообщений: 15,636
Завершенные тесты: 1
13.08.2014, 11:39 #2
Все гораздо проще
C++
1
2
3
4
while (Fin>>s)  // пока не конец файла Fin
       {
              if ( s[0] == 'а') cout << s << endl;
       }
1
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,117
Записей в блоге: 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;
1
zss
Модератор
Эксперт С++
6475 / 6038 / 1980
Регистрация: 18.12.2011
Сообщений: 15,636
Завершенные тесты: 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 использовать >> , то читаться каждый раз будет одно слово.
1
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,117
Записей в блоге: 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.
1
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; поясни , пожалуйста, эту строку
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,117
Записей в блоге: 5
Завершенные тесты: 1
13.08.2014, 12:48 #7
Цитата Сообщение от arzhanok Посмотреть сообщение
поясни , пожалуйста, эту строку
Сперва ищем вхождение в строке си строки " a", если его находим выводим строку. find возвращает npos если поиск был не удачен. Выше же все написано пусть и на буржуйском.
1
BlackIce
310 / 172 / 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" не выведется, хотя должна.
1
13.08.2014, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 16:18
Привет! Вот еще темы с ответами:

Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. - C++
Строки состоят из слов, разделенных пробелами. Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву. ...

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

Найти и вывести все слова начинающиеся и заканчивающиеся на одну и ту же букву (комментирование кода) - C++
Прокомментируйте пожалуйста код: /* Ввести строку длинной до 500 символов.Алфавит русские буквы и пробелы.Найти и вывести все слова...

Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы - C++
Здравствуйте. Помогите, пожалуйста сделать программу... Задание: Составить программу, которая выводит на экран слова с наименьшим...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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