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

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

Войти
Регистрация
Восстановить пароль
 
reidaigo
6 / 6 / 0
Регистрация: 16.12.2012
Сообщений: 31
#1

Строковый тип. Перевернуть строку - C++

13.12.2013, 23:49. Просмотров 1011. Ответов 2
Метки нет (Все метки)

Здраствуйте! Задача: ввести строку, перевернуть её, вывести полученную строку.
Задачу выполнил частично: переворачивается строка, содержащая не больше 2 слов, иначе - ошибка.
Собственно и вопрос вам: почему так получается? Как изменить код, чтобы можно было больше 2 слов ввести и не будет никакой ошибки?
Код:
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
#include "stdafx.h"
#include <iostream> 
 
using namespace std;
 
void reversit(char mas[]){
    int j=strlen(mas)-1; char buf; int i=0;
    do{
        buf= mas[i];
        mas[i]=mas[j];
        mas[j]=buf;
        i++;j--;
    } while (i!=j || i<j);
}
 
 
 
 
int main()
   {
setlocale(LC_ALL,"");
const int MAX=80;
char massiv[MAX];
cout << "Введите строку: ";
cin.get(massiv,MAX);
reversit(massiv);
 
cout <<endl<< massiv << endl;
    system("pause");
 return 0;
   }
Добавлено через 3 минуты
и вводимое второе слово не должно быть больше 3 символов, дабы избежать ошибки. Не понимаю почему так, прошу о помощи, спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 23:49     Строковый тип. Перевернуть строку
Посмотрите здесь:

Циклы. Строковый тип - C++
В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-;), найти слова, состоящие ровно из k (задано) букв.

дописать строковый тип данных в си++ - C++
допишите кто-нибудь программу, только полегче, с комментариями. Заранее спасибо.ТОЛЬКО БЕЗ УКАЗАТЕЛЕЙ Задача Даны две строки,...

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

еще одна задача на строковый тип - C++
Дана строка символов, среди которых есть двоеточие (:). Определить, сколько символов ему предшествует

Проверка на строковый или символьный тип данных - C++
У меня есть небольшая программка, которая суммирует первые три числа после запятой у дроби: #include &lt;iostream.h&gt; #include &lt;conio.h&gt;...

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

Тема: Циклы, строковый тип. Написать программу по данной задаче - C++
:help: В строке записан текст, в котором слова разделены знаками препинания (пробел : , - ; ), в конце предложения стоит точка, ? или...

Перевернуть строку - C++
Написал программу которая переворачивает строку #include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; void reversit(char...

Перевернуть строку - C++
всем привет! помогите, плиз: Введённую с клавиатуры строку А записать в обратном порядке в строку Б. Строку Б вывести на экран.

Перевернуть строку - C++
Данн текст. Необходимо вывести его буквы в обратном порядке. типо ввожу &quot;первое предложение&quot;, а выводится &quot;еинежолдерп еовреп&quot;(можно...

Перевернуть строку - C++
Написать функцию, которая переставляет символы строки по принципу обмена первого и последнего, второго и предпоследнего и т.д. ...

Перевернуть строку. В чем проблема? - C++
#include &lt;iostream&gt; using namespace std; void swapstr(char* str) { for(int i=0; i&lt;strlen(str)/2-1;i++) { char...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yanush
158 / 154 / 46
Регистрация: 28.09.2013
Сообщений: 287
Завершенные тесты: 1
14.12.2013, 01:33     Строковый тип. Перевернуть строку #2
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
#include <iostream>
 
void StringReverse(char *str)
{
    char tmp;
    int len = strlen(str);
    for (int i = 0; i < len / 2; i++)
    {
        tmp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = tmp;
    }
}
 
#define MAX_LEN 80
 
int main()
{
    setlocale(LC_ALL, "");
    char str[MAX_LEN];
    memset(&str, 0, sizeof(str));
    std::cin.get(str, MAX_LEN);
    std::cout << "Исходная строка: " << str << "\n";
    StringReverse(str);
    std::cout << "Перевернутая строка: " << str << "\n";
    system("pause");
    return 0;
}
reidaigo
6 / 6 / 0
Регистрация: 16.12.2012
Сообщений: 31
16.12.2013, 17:51  [ТС]     Строковый тип. Перевернуть строку #3
Yanush, спасибо, конечно, но с этим алгоритмом я работал, и его прекрасно понимаю и использую. А хотелось бы просто знать, почему мой алгоритм не работает..
Ответ Создать тему
Опции темы

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