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

Инверсия строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
warspirit
3 / 3 / 0
Регистрация: 30.03.2011
Сообщений: 61
17.10.2012, 23:22     Инверсия строк #1
Помогите найти ошибку,почему выводиться строки с лишними символами ?
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
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <string>
 
using namespace std;
 
 
char * reverse(string str)
{
    char * buff = new char[str.length()];
    for(int i = str.length() - 1; i >= 0; i--)
        buff[str.length() - i - 1] = str[i];
    return buff;     
}
 
int main(int argc, char *argv[])
{
   
   char str1[100];
    cin.getline(str1, 100 , '*' );
    cout<<str1;
     std::cout << reverse(str1);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 23:22     Инверсия строк
Посмотрите здесь:

C++ инверсия
C++ двумерный масив инверсия спирали
C++ Инверсия
C++ Инверсия в массиве
Инверсия мыши C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
17.10.2012, 23:24     Инверсия строк #2
Может быть потому что ты в конец '\0' (ноль) не записываешь!? Ты записываешь ноль в конец? Это ты писал!?
warspirit
3 / 3 / 0
Регистрация: 30.03.2011
Сообщений: 61
17.10.2012, 23:37  [ТС]     Инверсия строк #3
как записать в конец '\0' (ноль).
в выше написаном коде
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
17.10.2012, 23:39     Инверсия строк #4
Мм.. Что?
Amen
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 3
18.10.2012, 00:12     Инверсия строк #5
Цитата Сообщение от lazybiz Посмотреть сообщение
Может быть потому что ты в конец '\0' (ноль) не записываешь!? Ты записываешь ноль в конец? Это ты писал!?
покажи куда (тыкни пальцем) записывать " '\0' "
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
18.10.2012, 00:18     Инверсия строк #6
В функции reverse, в самый конец массива buff ( buff[str.length()] = '\0'; ).
Но для этого тебе необходимо выделить для массива buff на один символ больше ( new char[str.length() + 1]; ).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 00:23     Инверсия строк
Еще ссылки по теме:

Инверсия C++
C++ Инверсия в массиве
C++ Инверсия нужно исправить ошибку

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

Или воспользуйтесь поиском по форуму:
warspirit
3 / 3 / 0
Регистрация: 30.03.2011
Сообщений: 61
18.10.2012, 00:23  [ТС]     Инверсия строк #7
Цитата Сообщение от lazybiz Посмотреть сообщение
В функции reverse, в самый конец массива buff ( buff[str.length()] = '\0'; ).
Но для этого тебе необходимо выделить для массива buff на один символ больше ( new char[str.length() + 1]; ).
блин,я и забыл,что нужно было увеличить размер массива на 1,перед добавлением ...
Yandex
Объявления
18.10.2012, 00:23     Инверсия строк
Ответ Создать тему
Опции темы

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