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

Перестановка символов строки - C++

Восстановить пароль Регистрация
 
kulpin
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 5
03.03.2013, 23:18     Перестановка символов строки #1
Здравствуйте, ищу помощи с мое задачей, все сделал но не работает один момент.
Задание для подпрограммы - получить новую строку путем вставки символа "!" через каждые 3 символа имеющееся строки. Проблема с функцией char* prog. Заранее спасибо.
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
#include <iostream>
using namespace std;
void prog( int mas[][5], int M , int N){
    int a = 0;
    int b = 0;
    cout << "Enter 1 column number to exchange:";
    cin >> a;
    a = a - 1;
    cout << "Enter 2 column number to exchange:";
    cin >> b;
    b = b - 1;
    for (int i = 0;i < M; i++)
    {
        int t = 0;
        int t1 = 0;
        t = mas [i][a];
        t1 = mas [i][b];
        mas [i][a] = t1;
        mas [i][b] = t;
    }
}
 
char* prog(char* text)
{
    for (int i = 0; i != '\0'; i++)
    {
        if ((i % 3) == 0){
        text[i] = '1';
        }
    }
    
 
return text;
}
void Print_array (int mas[][5], int M, int N){
    for (int i = 0; i < M; i++){
        for (int j = 0; j < N; j++){
            printf ("%4i ", mas[i][j]);
        }
        cout << endl;
    }
    cout << endl;
}
 
 
int main ()
{
    const int M = 6; // строки
    const int N = 5; // столбцы
    int mas[M][N] = {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};
    char* text = new char [100];
    Print_array (mas, M, N);
    prog (mas, M, N);
    cout <<"Changed rows: "<< endl;
    Print_array (mas, M, N);
    cout << "Enter string: ";
    //text = "qwertyqwertyqwerty";
    cin >> text;
    text = prog (text);
    cout <<"Changed string: ";
    cout << text<< endl;
    //delete text;
 
     system ("pause");
     return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 23:18     Перестановка символов строки
Посмотрите здесь:

Перестановка строки. C++
C++ перестановка n символов текста
C++ строки С++(После каждого символов '.' вставить два пробела, подсчитать, сколько раз пара символов 'C+' стоит перед символом 'D')
C++ Удалить конец строки символов. Ввести кол-во удаляемых символов , вывести результат ,String ,задачка,С++
C++ Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
Перестановка элементов каждой строки в обратном порядке C++
C++ Перестановка местами два участка строки
C++ Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.03.2013, 05:30     Перестановка символов строки #2
Если так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
char* prog(char* text)
{
    char* newtext = new char[strlen(text) + (strlen(text) / 3) + 1];
    
    int i, j, n;
    for (i = 0, j = 0; text[i] != '\0'; )
    {
        for (n = 0; n < 3 && text[i] != '\0'; n++, i++, j++)
            newtext[j] = text[i];
        
        if (n < 3) break;
        newtext[j] = '!';
        j++;
    }
    newtext[j] = '\0';
 
    delete [] text;    
    
    return newtext;
}
kulpin
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 5
04.03.2013, 11:51  [ТС]     Перестановка символов строки #3
Спасибо alsav22, теперь работает как нужно.
Yandex
Объявления
04.03.2013, 11:51     Перестановка символов строки
Ответ Создать тему
Опции темы

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