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

Поменять местами первое и последнее слово, найти слова-палиндромы - C++

Восстановить пароль Регистрация
 
Сергей и Ира
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 4
04.03.2014, 08:28     Поменять местами первое и последнее слово, найти слова-палиндромы #1
Объектно-ориентированное программирование.
Разработать программу. В заданном тексте (слова разделяются пробелами) по требованию пользователя выполнить одно или два из следующих заданий:
1) поменять местами первое и последнее слово;
2) найти слова-палиндромы (одинаково читаются слева направо и справа налево, например, КАЗАК);
3) определить, является ли заданный текст палиндромом (пробелы между словами во внимание не принимать).
Разработать форму выходного документа.

Помогите пожалуйста, оплачу, если понадобится!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 08:28     Поменять местами первое и последнее слово, найти слова-палиндромы
Посмотрите здесь:

C++ Дано предложение. Поменять местами его первое и последнее слово.
C++ Поменять местами в строке первое и последнее слова
C++ Поменять местами первое и последнее слово в строке
Поменять местами первое и последнее слово в предложении C++
C++ В каждой строке текстового файла поменять местами первое и последнее слова
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
04.03.2014, 12:36     Поменять местами первое и последнее слово, найти слова-палиндромы #2
Цитата Сообщение от Сергей и Ира Посмотреть сообщение
оплачу, если понадобится
А вот этого вот нельзя. Точнее можно еще как можно, но только в платном разделе.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.03.2014, 15:19     Поменять местами первое и последнее слово, найти слова-палиндромы #3
sentence.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef SENTENCE_H_
#define SENTENCE_H_
 
#include <string>
#include <vector>
#include <ostream>
 
class Sentence {
private:
    std::vector<std::string> words;
public:
    Sentence(const std::string & str);
    void swapHeadTail();
    bool isPalindrome(const std::string & s) const;
    std::vector<std::string> innerPalindromes() const;
    friend std::ostream & operator << (std::ostream & ost, const Sentence & sent);
};
 
#endif /* SENTENCE_H_ */

sentence.cpp
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
#include "sentence.h"
#include <algorithm>
#include <iterator>
#include <functional>
#include <sstream>
 
Sentence::Sentence(const std::string & str) {
    std::istringstream ist(str);
    std::copy(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(), std::back_inserter(words));
}
 
void Sentence::swapHeadTail() {
    std::swap(*words.begin(), *words.rbegin());
}
 
bool Sentence::isPalindrome(const std::string & str) const {
    std::string rst = str;
    std::reverse(rst.begin(), rst.end());
 
    return ( rst == str);
}
 
std::vector<std::string> Sentence::innerPalindromes() const {
    std::vector<std::string> ip;
    for ( std::vector<std::string>::const_iterator i = words.begin(); i != words.end(); ++i )
        if ( isPalindrome(*i) )
            ip.push_back(*i);
 
    return ip;
}
 
std::ostream & operator << (std::ostream & ost, const Sentence & sent) {
    std::copy(sent.words.begin(), sent.words.end(), std::ostream_iterator<std::string>(ost, " "));
    return ost;
}

testsentence.cpp
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
#include "sentence.h"
#include <iostream>
#include <iterator>
 
int main() {
    Sentence sent("any 12321 many 4554 money more");
 
    std::cout << "Sentence: " << sent << std::endl;
 
    std::vector<std::string> palindromes = sent.innerPalindromes();
    if ( ! palindromes.empty() ) {
        std::cout << "Inner palindromes: ";
        std::copy(palindromes.begin(), palindromes.end(), std::ostream_iterator<std::string>(std::cout, " "));
        std::cout << std::endl;
    }
    else
        std::cout << "No inner palindromes found!" << std::endl;
 
    sent.swapHeadTail();
    std::cout << "Swap head & tail: " << sent << std::endl;
    std::cout << "bla bla bla" << " is" << ( ( sent.isPalindrome("bla bla bla") ) ? " " : " not " ) << "a palindrome." << std::endl;
    std::cout << "abc cba" << " is" << ( ( sent.isPalindrome("abc cba") ) ? " " : " not " ) << "a palindrome." << std::endl;
 
    return 0;
}
Сергей и Ира
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 4
17.03.2014, 09:36  [ТС]     Поменять местами первое и последнее слово, найти слова-палиндромы #4
Я ничего не понимаю Нужно, что бы в итоге после первого запуска программы был exe файл...

Добавлено через 15 минут
И нужно что бы были формы.
Памирыч
18.03.2014, 06:07     Поменять местами первое и последнее слово, найти слова-палиндромы
  #5
 Комментарий модератора 
Закрыто. Причина: кросспостинг
Yandex
Объявления
18.03.2014, 06:07     Поменять местами первое и последнее слово, найти слова-палиндромы
Закрытая тема Создать тему
Опции темы

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