Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
Tanya32
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 10
1

Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*»

19.05.2012, 12:41. Просмотров 3033. Ответов 2
Метки нет (Все метки)

Дана строка. Преобразовать ее, удалив каждый символ «*» и повторив каждый символ, отличный от «*».
Помогите пожалуйста.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 12:41
Ответы с готовыми решениями:

Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Кто может решить задачки по С++? Решите плиз 1. Дана строка. Указать те слова, которые содержат...

Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *....

Строка: Преобразовать строку, удалив каждый символ звёздочки и повторив каждый символ, отличный от звёздочки
Дана строка. Преобразовать её, удалив каждый символ звёздочки и повторив каждый символ, отличный от...

Преобразовать строку, удалив каждый символ "*" и повторив каждый символ, отличный от "*"
Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ. Отличный от *....

Преобразовать строку, удалив каждый символ * и удвоив каждый символ, отличный от *
Дана строка преобразовать ее, удалив каждый символ * и удвоив каждый символ отличный от *.

2
Besalelon
0 / 0 / 1
Регистрация: 16.05.2012
Сообщений: 1
19.05.2012, 14:37 2
Лучший ответ Сообщение было отмечено Tanya32 как решение

Решение

Здравствуй. Вот, набросал примерчик:

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
#include <string.h>
#include <iostream>
 
using namespace std;
 
void del_char(char in[], int num)
{
    for (int i = num; i < strlen(in); i++)
        in[i] = in[i+1]; // Двигаем содержимое строки после нужного нам символа на 1 символ влево
}
 
void repeat_char(char in[], int num)
{
    for (int i = strlen(in) + 1; i > num + 1; i--)
        in[i] = in[i-1]; // Двигаем содержимое строки после нужного нам символа вправо
    in[num+1] = in[num]; // Удваиваем символ
}
 
int main()
{
    char string[50];
    cin >> string;
    for (int i = 0; i < strlen(string); i++)
    {
        if (string[i] == '*')
        {
            del_char(string, i); // Если символ равен *, то удаляем
            i--; // Двигаем переменную цикла, т.к. строка сдвинулась влево
        } else {
            repeat_char(string, i); // Если нет, то удваиваем
            i++; // Двигаем переменную цикла, т.к. строка сдвинулась вправо
        }
    }
    cout << string << endl;
    system("Pause");
    return 0;
}
Код неидеален, но задачу выполняет.
0
igorrr37
2038 / 1602 / 800
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
19.05.2012, 15:02 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    char s[128], res[256], *a = s, *b = res;
    std::cin.getline(s, sizeof(s));
    for(; *b = *a; ++a)
    {
        if('*' != *b)
        {
            *++b = *a;
            ++b;
        }
    }
    std::cout << res << std::endl;
    return 0;
}
2
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2012, 15:02

Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*"
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже...

Дана символьная строка. Преобразовать ее, удалив каждый символ «*» и повторив
Дана символьная строка. Преобразовать ее, удалив каждый символ «*» и повторив. Проблема в том, что...

Преобразовать строку, удалив из нее каждый символ "."
Дана строка символов. Преобразовать строку, удалив из нее каждый символ &quot;.&quot; . И повторив каждый...


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

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

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