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

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

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

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

03.03.2013, 23:18. Просмотров 364. Ответов 2
Метки нет (Все метки)

Здравствуйте, ищу помощи с мое задачей, все сделал но не работает один момент.
Задание для подпрограммы - получить новую строку путем вставки символа "!" через каждые 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     Перестановка символов строки
Посмотрите здесь:

перестановка n символов текста - C++
Доброго времени суток! Помогите, пажалуйста, написать программу, которая переставляет n-ое количество символов (n - целое число, вводимое...

Перестановка строки. - C++
#include &lt;iostream&gt; using namespace std; void change(char &amp;a, char &amp;b); void permutation(char* Str) { ...

Перестановка местами два участка строки - C++
Есть область памяти (строка), условно поделенная на две части A и B. Область B идет сразу после A. Заданы длины обоих частей....

Перестановка элементов каждой строки в обратном порядке - C++
Здравствуйте! Помогите, пожалуйста, написать функцию перестановки элементов каждой строки двумерного массива в обратном порядке. И вывести...

Строки (перестановка 1 и последней буквы каждого слова) - C++
Разработать программу, которая в заданной строке, представляющей собой некоторые предложение, меняет местами первую и последнюю букву...

Разработать программу «переворота» строки. Способ: последовательная перестановка элементов - первый с последним, второй с предпоследним и т.д. - C++
Разработать программу «переворота» строки. Способ: последовательная перестановка элементов - первый с последним, второй с предпоследним...

Заданы 2 строки. Определить местоположение символа первой строки, который первым не совпал с одним из символов второй - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой строки, который первым не совпал с...

Дополнить строки знаками "+", чтобы все строки в нем имели длину 80 символов - C++
В текстовом файле f1 длина каждой строки не более 80 символов. Сформировать файл f2 таким образом, чтобы все строки в нем имели длину 80...

Строки символов - C++
Здравствуйте. Задача такая: Язык С++ Дан двумерный массив из символов(10 строк по 80 символов). Нужно из каждой строки удалить 1...

Строки символов - C++
Прошу помощи в написании программы, не знаю даже с чего начать, в Visual до этого не программировал, навыки не высоки. Задание: В...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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     Перестановка символов строки
Ответ Создать тему
Опции темы

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