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

Дана строка s, содержащая n символов s1, s2, . , sn,. Зеркальное отражение строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как объявлять и инициализировать динамические структуры? http://www.cyberforum.ru/cpp-beginners/thread1100542.html
С помощью операции new нужно создать массив из трёх элементов структуры. Пытался это сделать, но возникают проблемы из присваиванием значений членам структуры. Был бы признателен и за просто разъяснение, как нужно объявлять такие динамические структуры, а потом устанавливать значение членам структуры.
C++ Дана строка s и символ c. Определить количество слов, местяться в нем Дана строка s и символ c. Определить количество слов, местяться в нем. Рассматривать только такие слова: начинаются с символа c; заканчиваются символом c; содержат хотя бы один символ c; не содержат символа c; имеют ровно три вхождения символа c. И так дана строка, определить допустим количество слов возможно, но не пойму дополнительные условия как их можно реализовать:read:,... http://www.cyberforum.ru/cpp-beginners/thread1100539.html
C++ Найти сороковое число Фибоначчи
Здравствуйте форумчане! Подскажите, как решить данные задания. Отстаю от группы, а так и не разобрался в этой теме. Используя Цикл Числа Фибоначчи ( fn ) определяются формулами f0 = f1 = 1, fn = fn−1 + fn−2 при n = 2, 3, … . Определить f40 Заранее спасибо.
C++ Работа с Complex
Вроде как все правильно, компилятор даже не ругается, но почему-то значения затираются, и я не могу понять почему. Вот сам код: class Complex { private: double real; // Действительная часть double image; // Мнимая часть public: Complex() {}; // Конструктор по умолчанию
C++ Тетрис на С++ http://www.cyberforum.ru/cpp-beginners/thread1100485.html
Помогите доработать игру. запутался с _kbhit() и _getch() нужно сделать чтобы фигура постоянно падала, а во время нажатия клавиш смещалась. а у меня фигура останавливается и программа ждет ввода с клавиатуры.
C++ Составить программу , проверяющую, попадает ли введенная точка с кооординатами (x;y) в заштрихованную фигуру Составить алгоритм и программу, проверяющую, попадает ли введенная точка с координатами (x;y) в заштрихованную фигуру.Считать, что граница принадлежит фигуре. Помогите пожалуйста подробнее

Показать сообщение отдельно
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
19.02.2014, 18:14     Дана строка s, содержащая n символов s1, s2, . , sn,. Зеркальное отражение строки
Цитата Сообщение от Anwer Посмотреть сообщение
std::cout << s; - в самом конце подчеркивает
Добавьте сверху строку
C++
1
2
#include <iostream>
#include <string>
Добавлено через 38 секунд
Цитата Сообщение от Anwer Посмотреть сообщение
Что за mirror, mirror. begin?? str.insert? просто не понимаю, а точнее не учил пока что этого, но хотелось бы научится и понять. А и в каждой функции вы объявляете std::string& str Что это тоже значит?
Вот мой код с комментариями.
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
#include <iostream>
#include <string>
 
bool check_palindrom(const std::string& str) //функция проверки на палиндромность
{
    for (int i =0 ; i < str.size()/2; ++i) //запускаем цикл 
        if (str[i] != str[str.size() - 1 - i]) return false; // если хотя бы одни симметричные элементы не равны, то уже нет смысла смотреть дальше, потому возвращаем false
 
    return true; //если все элементы симметричны, то программа приходит сюда и возвращает true, то есть потверждение палиндромности
}
 
void get_mirror_str(std::string& str) //функция отзеркаливания
{
    std::string mirror = str; // создаем строку, которая равна входящей
    std::reverse(mirror.begin(), mirror.end()); // а тут мы ее отзеркаливаем, то есть переворачиваем с помощью функции reverse
    str.insert(str.end(), mirror.begin() + 1, mirror.end()); // а здесь лепим всё воедино 
}
 
int main()
{
    std::string s = "amerikakirema";
    if (!check_palindrom(s))
        get_mirror_str(s);
 
    std::cout << s;
 return 0;
}
Если вопросы всё еще есть - задавайте.

Добавлено через 4 минуты
По поводу std::string& str.
Это передача переменной по ссылке. Если посмотрите в мейн, то увидите, что функция
get_mirror_str(s); не возвращает нам отзеркаленную строку. Почему?
Потому что я передала туда строку ПО ССЫЛКЕ, то бишь - передела сам кусок памяти, в которой хранится строка. И эта функция будет работать непосредственно с этой переменной.
Если не понятно, то можете изменить код для облегчения и сделать так
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
#include <iostream>
#include <string>
 
bool check_palindrom(const std::string str) 
{
    for (int i =0 ; i < str.size()/2; ++i) 
        if (str[i] != str[str.size() - 1 - i]) return false;
 
    return true; 
}
 
std::string  get_mirror_str(std::string str) // <-- Вот тут передаем не переменную s, а само значение "ameriakirema"
{
    std::string mirror = str;
    std::reverse(mirror.begin(), mirror.end()); 
    str.insert(str.end(), mirror.begin() + 1, mirror.end()); 
    return mirror;
}
int main()
{
    std::string s = "amerikakirema";
    if (!check_palindrom(s))
        s = get_mirror_str(s);
 
    std::cout << s;
 return 0;
}
Добавлено через 4 минуты
Функция std::insert позволяет вставлять одну строку во вторую. (Не только строки, но в данном случае -их).
А в саму функцию передаем параметры std::insert(*куда вставляем*,*начало того, что вставляем*, *конец того, что вставляем*)
 
Текущее время: 10:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru