Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
warspirit
3 / 3 / 2
Регистрация: 30.03.2011
Сообщений: 61
#1

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

17.10.2012, 23:22. Просмотров 3141. Ответов 6
Метки нет (Все метки)

Помогите найти ошибку,почему выводиться строки с лишними символами ?
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;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 23:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Инверсия строк (C++):

инверсия
Нужно реализовать инверсию связанного списка (однонаправленного) на С++...

Инверсия
Нужно написать программу, на входе (без клавиатуры) подается a b c на выходе c...

Инверсия
Всем привет ! как это можно реализовать ? В массиве А инвертировать те его...

Инверсия в массиве
Задан массив из k чисел.Определить количество инверсий в массиве(т.е. таких пар...

Битовая инверсия
Доброго времени суток! Я что-то запутался с побитовой инверсией. В коде...

Побитовая инверсия
Почему выводит 13? int y = -14; cout &lt;&lt; ~y;

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

Инверсия в массиве
Составить программу, которая подсчитывает для каждого из массивов Х и Y...

Инверсия мыши
Хочу написать программу на С++ для инверсии мыши. скажите как контролировать...

Инверсия бит
Добрый день. Есть unsigned short int x; Нужно инверсировать все биты в x,...

Инверсия порядка цифр
Вопрос проще некуда: как записать число &quot;1234&quot; в переменную как &quot;4321&quot;? Есть...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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