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

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

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

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

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

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

Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2 - C++
помогите написать программу на двух разных классах! 2) Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк...

Перестановка строки. - 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. Заданы длины обоих частей....

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

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

2
alsav22
5425 / 4820 / 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;
}
1
kulpin
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 5
04.03.2013, 11:51  [ТС] #3
Спасибо alsav22, теперь работает как нужно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 11:51
Привет! Вот еще темы с ответами:

Ошибка ввода символов строки, при количестве символов кратных 8 - C++
Здравствуйте, уважаемые форумчане! Разбираясь с механизмом ввода и динамическим выделением памяти для строк решил написать такой...

Каждое слово строки состоящее более, чем из 8 символов, сократить до первых 8 символов - C++
Нуждаюсь в помощи. Нужно написать программу на C++(в принципе, и на Си можно) которая делает следующее: В каждой строке каждое слово,...

Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. - C++
Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. Ввод В первой строке файла...

Удалить конец строки символов. Ввести кол-во удаляемых символов , вывести результат ,String ,задачка,С++ - C++
Удалить конец строки символов. Ввести количество удаляемых символов , вывести результат на печать . Помогите плиз с задачкой. тема :...


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

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

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