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

Вывести строку задом наперед - C++

Восстановить пароль Регистрация
 
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
09.03.2013, 20:21     Вывести строку задом наперед #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main() {
    int len; char temp;
    cin>>len;
    cin.ignore();
    char *str = new char[len++];
    cin.getline(str,len);
    cout<<"Inverse string: ";
 
    for (int i=0; i<len/2; i++) {
        temp=str[len-i-1];
        str[len-i-1]=str[i];
        str[i]=temp;
    }
    cout<<str;
}
Не могу понять в чем трабла. помогите пожалуйста.

Не по теме:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main() {
    int len; char temp;
    cin>>len;
    cin.ignore();
    char *str = new char[len++];
    cin.getline(str,len);
    cout<<"Inverse string: ";
 
    for (int i=0; i<len/2; i++) {
        temp=str[len-i-1];
        str[len-i-1]=str[i];
        str[i]=temp;
    }
    cout<<str;
}

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
09.03.2013, 20:49     Вывести строку задом наперед #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
 
#include <string.h>
int main(int argc, char* argv[])
{
string s;
getline(cin,s);
//cout<<s<<endl;
for (int i=s.length()-1; i>=0; i--) cout<<s[i];
cout<<endl;
system ("pause");
        return 0;
}
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
09.03.2013, 20:51  [ТС]     Вывести строку задом наперед #3
Цитата Сообщение от Черный ворон Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
 
#include <string.h>
int main(int argc, char* argv[])
{
string s;
getline(cin,s);
//cout<<s<<endl;
for (int i=s.length()-1; i>=0; i--) cout<<s[i];
cout<<endl;
system ("pause");
        return 0;
}
для строк мне нужно использовать массив чаров. и выводить в итоге всю строку целиком. такое задание.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
09.03.2013, 21:01     Вывести строку задом наперед #4
тогда из твоего кода надо поправить второй цикл так:
C++
1
2
3
4
5
for (int i=0; i<len/2; i++) {
        temp=str[len-i-2];
        str[len-i-2]=str[i];
        str[i]=temp;
    }
ошибка в том что len-i-1 на первой итерации указывает на символ конца строки который записывается на первое место новой строки
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
09.03.2013, 21:04  [ТС]     Вывести строку задом наперед #5
Цитата Сообщение от Черный ворон Посмотреть сообщение
тогда из твоего кода надо поправить второй цикл так:
C++
1
2
3
4
5
for (int i=0; i<len/2; i++) {
        temp=str[len-i-2];
        str[len-i-2]=str[i];
        str[i]=temp;
    }
ошибка в том что len-i-1 на первой итерации указывает на символ конца строки который записывается на первое место новой строки
точно, -2. спасибо =)
Yandex
Объявления
09.03.2013, 21:04     Вывести строку задом наперед
Ответ Создать тему
Опции темы

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