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

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

Восстановить пароль Регистрация
 
reidaigo
6 / 6 / 0
Регистрация: 16.12.2012
Сообщений: 31
13.12.2013, 23:49     Строковый тип. Перевернуть строку #1
Здраствуйте! Задача: ввести строку, перевернуть её, вывести полученную строку.
Задачу выполнил частично: переворачивается строка, содержащая не больше 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++
Задание на строковый тип. C++
C++ символьный и строковый тип данных
C++ дописать строковый тип данных в си++
C++ Проверка на строковый или символьный тип данных
еще одна задача на строковый тип C++
C++ Циклы. Строковый тип
C++ Сравнение значении и вывод информации. Строковый тип

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 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, спасибо, конечно, но с этим алгоритмом я работал, и его прекрасно понимаю и использую. А хотелось бы просто знать, почему мой алгоритм не работает..
Yandex
Объявления
16.12.2013, 17:51     Строковый тип. Перевернуть строку
Ответ Создать тему
Опции темы

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