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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
#1

Программа на С++ строки - C++

08.07.2011, 13:35. Просмотров 1788. Ответов 28
Метки нет (Все метки)

Нужна помощь в написании программы. Дано предложение, слова в котором разделены пробелами, а в конце стоит точка. Заменить порядок слов в предложении на обратный.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2011, 13:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа на С++ строки (C++):

программа на строки - C++
помогите плиз кто нить решить!! 1. В строке найти заданную последовательность символов и от конца этой последовательности удалить все...

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

Программа на строки - C++
Здравствуйте,помогите мне,пожалуйста,написать программу на С++. Даны две строчки,с помощью функции strcpy копировать из сточки sp,такое ...

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

Простая программа на строки - C++
Помогите с задачей: написать функцию, которая обращяет строку, введённую с клавиатуры, другими словами зеркальное отображение.

программа на тему строки! - C++
помогите написать прогу! Во введённом тексте заменить цифры от 0 до 9 на слова «ноль, «один», …, «девять». заранее спасибо!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
olympian
2 / 2 / 0
Регистрация: 18.10.2008
Сообщений: 33
08.07.2011, 14:35 #2
C++
1
2
3
4
5
6
7
std::string src;
std::vector<std::string> arr;
boost::split(arr, src, boost::is_any_of(" "));
std::vector<std::string> reverse;
for (auto it = arr.begin(); it != arr.end(); it++)
    reverse.push_back(*it);
std::string res = boost::join(reverse, " ");
И если нужно - удали точку
0
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 14:54  [ТС] #3
А полностью программу не могли бы написать?
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
08.07.2011, 15:12 #4
Irina20, Сначала надо бы найти точку в строке и обрезать строку по ней, но с этим Вы и сами справитесь А слова в обратоной последовательности вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
    
int main(){
    std::string str;
    
    while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() ){
        std::istringstream ist(str);
        std::stack<std::string> stk;
        while ( ist >> str )
            stk.push(str);
        while ( ! stk.empty() ){
            std::cout << stk.top() << ' ';
            stk.pop();
        }
        std::cout << std::endl;
    }
    
    return 0;
}
0
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 15:16  [ТС] #5
мы не используем getline и cout
0
nameless
Эксперт C++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
08.07.2011, 15:18 #6
Цитата Сообщение от Irina20 Посмотреть сообщение
мы не используем getline и cout
А почему тогда в названии темы указано "Программа на С++ строки"?
1
4atty
45 / 45 / 1
Регистрация: 09.06.2011
Сообщений: 117
08.07.2011, 15:18 #7
ну так замени их.
0
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
08.07.2011, 15:20 #8
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
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int main()
{
    vector <string> v;
    string s;
    char c;
    //читаем предложение до точки
    while(true)
    {
        c = getchar();
        if(c == '.') break;
        s += c;
    }
    //разделяем его на отдельные слова
    string temp;
    for (int i = 0; i <= s.size(); i++)
    {
        c = s[i];
        if (c == ' ' || i == s.size()) 
        {
            v.push_back(temp);
            temp = "";
            continue;
        }
        temp += c;
    }
    //выводим слова в обратной последовательности
    for (int i = v.size()-1; i >= 0; i--)
        cout << v[i] << " ";
    cout << "." << endl; 
 
    return 0;
}
полгода уже не писал... но вроде работает
1
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 15:27  [ТС] #9
Mayonez, большое спасибо, работает !!!! ++
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
08.07.2011, 15:35 #10
Цитата Сообщение от Irina20 Посмотреть сообщение
мы не используем getline и cout

Не по теме:

Быдлокодеры всех стран объединяйтесь!


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
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
#include <cstdio>
    
int main(){
    char buf[BUFSIZ];
    
    while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
        std::string str(buf);
        std::istringstream ist(str);
        std::stack<std::string> stk;
        while ( ist >> str )
            stk.push(str);
        while ( ! stk.empty() ){
            printf("%s ", stk.top().c_str());
            stk.pop();
        }
        printf("\n");
    }
    
    return 0;
}
2
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 15:38  [ТС] #11
easybudda, большое спасибо, что откликнулись!!!! Ловите +
0
Kastaneda
08.07.2011, 15:45
  #12

Не по теме:

Цитата Сообщение от Irina20 Посмотреть сообщение
мы не используем getline и cout
Цитата Сообщение от easybudda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
        std::string str(buf);
        std::istringstream ist(str);
        std::stack<std::string> stk;
        while ( ist >> str )
            stk.push(str);
        while ( ! stk.empty() ){
            printf("%s ", stk.top().c_str());
            stk.pop();
        }
        printf("\n");
    }


1
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 15:51  [ТС] #13
easybudda, как сделать чтоб точка после замены в конце предложения осталась?
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
08.07.2011, 15:55 #14
Цитата Сообщение от Irina20 Посмотреть сообщение
как сделать чтоб точка после замены в конце предложения осталась?
вместо
C
1
printf("\n");
C
1
printf("\b.\n");
1
Irina20
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 12
08.07.2011, 16:02  [ТС] #15
easybudda, теперь получается
хорошая погода.
погода. хорошая.
т.е. точка после погоды осталась
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2011, 16:02
Привет! Вот еще темы с ответами:

Найдите ошибку, программа на строки - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;string.h&quot; #include &quot;iostream&quot; using namespace std; int main() { ...

Программа удаления из строки символов '0..9' - C++
Программа удаления из строки символов '0..9' #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(int...

Программа не выводит строки в файл - C++
Вывод в файл не работает! void setKey() { system(&quot;cls&quot;); cout &lt;&lt; &quot;Введите количество вопросов в тесте: &quot;; cin &gt;&gt; key; ...

Программа для ввода строки от блондинки - C++
Привет всем! Вот решила начать изучать язык программирования С++, но не все пока получается... Вот дали задание...написать программу,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2011, 16:02
Ответ Создать тему
Опции темы

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