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

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

Войти
Регистрация
Восстановить пароль
 
V50507
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 56
#1

Строка - C++

08.06.2014, 16:26. Просмотров 153. Ответов 5
Метки нет (Все метки)

Есть строка, состоящая из слов, разделенных любым количеством промежутков. Напишите программу, которая выводит на экран все слова, которые имеют определенный символ в позиции, пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 16:26     Строка
Посмотрите здесь:

C++ строка в c++
C++ строка
Строка C++
C++ строка
строка C++
строка C++
Строка C++
Строка C++
Строка C++
Строка C++
строка C++
Строка С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BRcr
4005 / 2294 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
08.06.2014, 16:47     Строка #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    using namespace std;
    //////////////////////////////////////
    ifstream ifs( "text_file.txt", std::ifstream::in );
    vector < string > out_data;
 
    for ( string s; ifs >> s; )
    {
        if ( s[ 1 ] == 'а' )
        {
            out_data.push_back( s );
        }
    }
 
    copy( out_data.begin( ), out_data.end( ), ostream_iterator < string > ( cout, " " ) );
    //////////////////////////////////////
    cout << "\n\n";
    system( "pause" );
text_file.txt:
Есть строка, состоящая из слов, разделенных любым количеством промежутков. Напишите программу, которая выводит на экран все слова, которые имеют определенный символ в позиции, пожалуйста)
Выхлоп:
Миниатюры
Строка  
V50507
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 56
08.06.2014, 16:59  [ТС]     Строка #3
Цитата Сообщение от BRcr Посмотреть сообщение
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
* * using namespace std;
* * //////////////////////////////////////
* * ifstream ifs( "text_file.txt", std::ifstream::in );
* * vector < string > out_data;
for ( string s; ifs >> s; )
* * {
* * * * if ( s[ 1 ] == 'а' )
* * * * {
* * * * * * out_data.push_back( s );
* * * * }
* * }
copy( out_data.begin( ), out_data.end( ), ostream_iterator < string > ( cout, " " ) );
* * //////////////////////////////////////
* * cout << "\n\n";
* * system( "pause" );
text_file.txt:
Есть строка, состоящая из слов, разделенных любым количеством промежутков. Напишите программу, которая выводит на экран все слова, которые имеют определенный символ в позиции, пожалуйста)
Выхлоп:
Миниатюры
Извините, пожалуйста, но мне так выбивает много ошибок. И вообще, программа какая-то сложная, я большинство написанного не понимаю. Мне бы помочь простенькую, с функцией getline
Вот я уже что-то начал делать ...
помогите, пожалуйста исправить и доработать
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
// Lab(1B).cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include <windows.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char S [3] ;
     int i;
     i=0;//количество совпадений
cout<<"Input string: " ;
cin.getline ( S, 3, '.' ) ;
if( S[2]='a') i++;
cout<<i;
 
 
    system("pause");
    return 0;
}
BRcr
4005 / 2294 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
08.06.2014, 17:13     Строка #4
Цитата Сообщение от V50507 Посмотреть сообщение
Извините, пожалуйста, но мне так выбивает много ошибок. И вообще, программа какая-то сложная, я большинство написанного не понимаю. Мне бы помочь простенькую, с функцией getline
Я бы уж лучше постарался понять на твоем месте, чем стал бы таскать из потока куски с помощью getline(), потом разбивать их как-то на слова и только потом выбирать подходящие под условие.
V50507
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 56
08.06.2014, 17:18  [ТС]     Строка #5
Цитата Сообщение от BRcr Посмотреть сообщение
Я бы уж лучше постарался понять на твоем месте, чем стал бы таскать из потока куски с помощью getline(), потом разбивать их как-то на слова и только потом выбирать подходящие под условие.
Спасибо, но тогда можете хотя бы прокомментировать код?
BRcr
4005 / 2294 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
08.06.2014, 18:08     Строка #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    using namespace std;
    //////////////////////////////////////
    ifstream ifs( "text_file.txt", ifstream::in ); // открываем поток для файла
    vector < string > out_data; // вектор для хранения результатов
 
    for ( string s; ifs >> s; ) // на каждом такте цикла осуществляем форматированный вывод порции данных из потока в переменную s, разделителем при этом считается пробел; то бишь выдергиваем по одному слову за раз
    {
        if ( s[ 1 ] == 'а' ) // если второй символ в слове равняется 'а'
        {
            out_data.push_back( s ); // то добавляем слово в список результатов
        }
    }
 
    copy( out_data.begin( ), out_data.end( ), ostream_iterator < string > ( cout, " " ) ); // выводим все слова из вектора в поток cout через пробел
    //////////////////////////////////////
    cout << "\n\n";
    system( "pause" );
vector
istream::operator>>
copy
ostream_iterator

Все остальное легко гуглится...
Yandex
Объявления
08.06.2014, 18:08     Строка
Ответ Создать тему
Опции темы

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