Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/35: Рейтинг темы: голосов - 35, средняя оценка - 4.74
11 / 10 / 7
Регистрация: 07.05.2013
Сообщений: 248
1

Напишите программу, переставляющую символы в строке в обратном порядке по заданному шаблоном виду

07.06.2013, 13:06. Показов 7105. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите программу, переставляющую символы в строке в обратном порядке по заданному шаблоном виду.
Выведите исходную и преобразованную строку на экран.
Вход: hello world!
Вывод: olleh !dlrow

как это сделать циклами?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2013, 13:06
Ответы с готовыми решениями:

Напишите функцию reverse, размещающую символы в строке s в обратном порядке
Есть упражнение: Напишите функцию reverse( s ), размещающую символы в строке s в обратном порядке....

Напишите функцию reverse(s) размещающую символы в строке s в обратном порядке
Не компилируется выдает ошибку которую я понять не могу: #include <stdio.h> #define MAXLINE...

Переставить символы в строке в обратном порядке
Добрый вечер. Помогите пожалуйста разобраться в программке. #include <iostream> #include...

Переставить в строке символы в обратном порядке
Составить программу, которая из заданного текстового файла произвольной длины читает строку и...

26
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
09.06.2013, 21:44 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от wolf1396 Посмотреть сообщение
а вот ошибка:
error C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
Либо мелкософт в край охренел, либо вы врете. Если честно, я склонен ко второму т.к. флаги компиляции вы пока вряд ли умеете править.
Если не стоит -Werror, то VS лишь кинет warning и скомпилит код. Ибо не имеют право они свою проприетарщину втюхиваь уж настолько явно. strtok_s - поделка, не входящая в стандарт. Единственная причина почему вы её видите - желание привязать вас к VS т.к. в любом нормальном компиляторе данная функция отсутствует.
Добавьте
C++
1
#define _CRT_SECURE_NO_WARNINGS
в начале кода и наслаждайтесь успешной компиляцией без ошибок и предупреждений.

Добавлено через 1 минуту
Цитата Сообщение от Dani Посмотреть сообщение
как видно, этот человек со студии, а там может не скомпилиться void main, поэтому нужно int main;
как раз единственное место, где скомпилится void main - это студия ибо на стандарты наплевать
0
11 / 10 / 7
Регистрация: 07.05.2013
Сообщений: 248
09.06.2013, 21:52  [ТС] 22
Цитата Сообщение от MrGluck Посмотреть сообщение
Кликните здесь для просмотра всего текста
Либо мелкософт в край охренел, либо вы врете. Если честно, я склонен ко второму т.к. флаги компиляции вы пока вряд ли умеете править.
Если не стоит -Werror, то VS лишь кинет warning и скомпилит код. Ибо не имеют право они свою проприетарщину втюхиваь уж настолько явно. strtok_s - поделка, не входящая в стандарт. Единственная причина почему вы её видите - желание привязать вас к VS т.к. в любом нормальном компиляторе данная функция отсутствует.
Добавьте
C++
1
#define _CRT_SECURE_NO_WARNINGS
в начале кода и наслаждайтесь успешной компиляцией без ошибок и предупреждений.

Добавлено через 1 минуту

как раз единственное место, где скомпилится void main - это студия ибо на стандарты наплевать
ага, я вру -_-
Миниатюры
Напишите программу, переставляющую символы в строке в обратном порядке по заданному шаблоном виду  
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
09.06.2013, 22:03 23
wolf1396, lol ну значит
Цитата Сообщение от MrGluck Посмотреть сообщение
мелкософт в край охренел
т.к. предназначение данной функции я вам рассказал. В VS2008, 2010 всегда было лишь как бульканье.
Переставьте дефайн _CRT_SECURE_NO_WARNINGS до всех инклюдов.

Или можно так:
Проект ->Свойства->Свойства конфигурации->C/C++ ->препроцессор ->определения препроцессора -> изменить -> в первом поле дописать _CRT_SECURE_NO_WARNINGS.
Добавлено через 5 минут
Ладно, вот вам плюсовый вариант (немного подкорректировал предыдущий)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstddef>
#include <cstring>
 
int main()
{
    const size_t size = 100;
    char str[size];
    // считываем строку с потока (до нажатия Enter)
    std::cin.getline(str, sizeof(str));
 
    // разделяем на подстроки до " ", записываем результат в p
    for (char *p = strtok(str, " "); p != NULL; p = strtok(NULL, " "))
    {
        // выводим подстроку с конца до начала (наоборот)
        for (size_t pos = strlen(p); pos; pos--)
            std::cout << p[pos-1];
        std::cout << "\n";
    }
}
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
09.06.2013, 22:10 24
MrGluck, да в 2012 студии именно так, причем в 2010-й это считалось только как предупреждение.

Dani, неа, не уверен. Я то думал - такая фича. В VS2012 компилируется без доп. заголовочных файлов.
А я то как раз и вводил в консоль Hello. Лишние 5 букв - было лень.
Теперь понял, что strlen урезает проверку длины до первого пробела или еще как-то. Вообщем, ушел курить мануал.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
09.06.2013, 22:17 25
Цитата Сообщение от Dragokas Посмотреть сообщение
да в 2012 студии именно так
печально т.к. это еще один шаг в сторону от стандарта и попытка привязать пользователей к единственной IDE. На деле оснований запрещать strtok у них не было. Ведь даже для капабилити не оставили.

Добавлено через 3 минуты
Цитата Сообщение от Dragokas Посмотреть сообщение
Теперь понял, что strlen урезает проверку длины до первого пробела или еще как-то.
неправильно поняли. Дело в том, что обычное считывание в массив char идет до первого пробела или символа перевода строки. Для считывания всей строки до нажатия Enter необходима след. комбинация:
C++
1
2
cin.getline(str, sizeof(str)); // если str - char[]
getline(cin, str); // если str - string
Добавлено через 38 секунд
http://www.cplusplus.com/refer... kw=getline
http://www.cplusplus.com/refer... in.getline
1
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
09.06.2013, 22:19 26
Dragokas, лучше почиать про cin: он же до whitespace считывает.

Добавлено через 26 секунд

Не по теме:

опоздал)



Добавлено через 1 минуту
про strlen и не говори, у меня при include iostream откуда-то abs берется.
1
11 / 10 / 7
Регистрация: 07.05.2013
Сообщений: 248
20.06.2013, 19:36  [ТС] 27
Кликните здесь для просмотра всего текста
Цитата Сообщение от Olivеr Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
template <typename Iter>
void reverse(Iter first, Iter last)
{
    while (first != last && first != --last) {
        std::swap(*first, *last);
        first++;
    }
}
 
int main()
{
    std::string str("12345");
    reverse(str.begin(), str.end());
    std::cout << str;
    return 0;
}
или так
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::string s = "Hello world!";
    std::copy( s.rbegin(), s.rend(), std::ostream_iterator<char>(std::cout) );
    return 0;
}


если сделать std::reverse(...);
то скомпилируется все ок и даже запуститься
thank you
0
20.06.2013, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2013, 19:36
Помогаю со студенческими работами здесь

Переставить в строке все символы обратном порядке.
Ввести строку символов. Переставить в строке все символы обратном порядке. Вывести измененную...

Отсортировать в строке символы в порядке, обратном алфовитному.
После введения с клавиатуры произвольной строки вывести на экран эту строку с отсортированными в...

Разработать функцию, переставляющую строки заданной квадратной матрицы в обратном порядке
Разработать функцию, которая переставляет строки заданной квадратной матрицы в обратном порядке....

Напишите программу, записывающую слово X в обратном порядке
Напишите программу, записывающую слово X в обратном порядке. Помогите пож-ста) и если не трудно с...

Написать и протестировать функцию, переставляющую в обратном порядке элементы главной диагонали квадратной мат
Написать и протестировать функцию, переставляющую в обратном порядке элементы главной диагонали...

Ввести строку символов, переставить все символы в строке в обратном порядке
Помогите дописать программу с условием: Ввести строку символов, переставить все символы в строке в...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru