Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Macbeth
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 3
#1

Циклический сдвиг, ошибка вывода. - C++

29.03.2010, 20:41. Просмотров 353. Ответов 4
Метки нет (Все метки)

Задание сдвинуть строку вправо на 1 символ. В консоле после вывода пусто (выглядит так: "row has been sorted: ").
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "stdafx.h"
#include <iostream>
#include <iostream>
#include "row.h"
using namespace std;
 
void main()
{
    char str[10] = ("abcde");
    DRow *v = new DRow(str);
 
    cout << "\r\n";
    cout << "Kolichestvo simvolov v stroke " << v->Lenght()<<endl;
    cout << "\r\n";
 
    v->SortSymb();
//----------------class------------------
class Row
{
protected:
    char *data;
public:
    Row(char *v);
    ~Row();
    int Lenght();
};
 
class DRow: public Row
{
public: 
    DRow(char *v): Row(v){};
    ~DRow();
    char SortSymb();
};
//---------------methods------------------
#include "stdafx.h"
#include <string.h>
#include "row.h"
#include <iostream>
using namespace std;
 
Row::Row(char *v)
{
    data = v;
}
 
int Row::Lenght()
{
    int len;
    len = strlen(data);
    return len;
}
 
char DRow::SortSymb()
{
    char tmp;
    //char c;
 
    //data[strlen(data)] = c;
 
    for(int i = 0; i < 1; i++)
    {
        tmp = data[strlen(data)];
        for(int j = strlen(data); j > 0; j--)
        {
            data[0] = tmp;
        }
    }
    //data[0] = c;
    cout<<"row has been sorted: "<<data<<endl;
    return 0;
}
}
Подскажите пожалуйста где я ошибся.

Добавлено через 3 часа 12 минут
up
Цикл переделывал с Паскаля.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2010, 20:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклический сдвиг, ошибка вывода. (C++):

В чем ошибка? Циклический сдвиг строки - C++
Есть код. Нужно сделать циклический сдвиг строки..... а он меняет мне 1 и последнюю местами .((( Помогите разобраться. ...

Ребят я не могу понять где ошибка (циклический сдвиг элементов массива вправо) - C++
Вот дана такая задача Напишите программу, которая циклически сдвигает элементы массива вправо (0-й элемент становится 1-м, 1-й становится...

Циклический сдвиг - C++
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не...

циклический сдвиг - C++
написать программу на СИ (обычном ,НЕ Си++), используя символьные массивы : Если число отрицательных элементов масива А чётно,то...

Циклический сдвиг. - C++
Нужно написать вот такую прогу, где нужно сдвинуть число а на n бит влево.

Циклический сдвиг - C++
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига вправо. ТО бишь x-&gt;y, y-&gt;z, z-&gt;x. Что я делаю не так? ...

4
schdub
2959 / 1304 / 239
Регистрация: 19.01.2009
Сообщений: 3,424
Завершенные тесты: 1
30.03.2010, 01:06 #2
Если на примере у нас есть строка "abcde", какая должна получиться?
0
Macbeth
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 3
30.03.2010, 09:22  [ТС] #3
eabcd. Я забыл написать, что надо перенести последний символ на место первого.
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
30.03.2010, 09:30 #4
Удобнее решать с помощью односвязного кольцевого списка
0
Macbeth
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 3
30.03.2010, 09:36  [ТС] #5
Уже разобрался, получилось так.

C++
1
2
3
4
5
6
7
tmp = data[strlen(data) - 1];
        for(int j = strlen(data) - 1; j > 0; j--)
        {
            data[j] = data[j-1];
        }
    
    data[0] = tmp;
0
30.03.2010, 09:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2010, 09:36
Привет! Вот еще темы с ответами:

циклический сдвиг подскажите - C++
Необходимо написать программу со следующей функциональностью: 2. Функции циклического сдвига влево и вправо на заданное число...

Инвертирование и циклический сдвиг - C++
Если содержание принятого кода может быть представлено в виде 2 в степени n, то выполнить операцию инвертирования значимых бит с парными...

Циклический сдвиг числа - C++
Здравствуйте, нужна помощь с циклическим сдвигом, данно: Число: 44225 Нужно произвести циклический сдвиг, то есть поставить...

Циклический сдвиг массива - C++
задача: Осуществить циклический сдвиг элементов квадратной матрицы размерности MxN вправо на k элементов таким образом: элементы 1-й...


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

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

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