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

обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов - C++

Восстановить пароль Регистрация
 
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
21.12.2013, 19:06     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #1
Добрый вечер!
суть задания, нужно каким-либо образом сделать так, что бы в строке рядом с каждой буквой записалось какое-нибудь количество таких же букв.
например, Hello world! -> HHHeeelllooo wwwooorrrlllddd
с удовольствием выслушаю ваши идеи и предложения !)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 19:06     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
Посмотрите здесь:

C++ Количество пар рядом стоящих одинаковых символов строки
C++ строки С++(После каждого символов '.' вставить два пробела, подсчитать, сколько раз пара символов 'C+' стоит перед символом 'D')
Строки. Произвести над каждым символом операцию побитового И C++
C++ Написать функцию заполнения начала строки заданным символом.
C++ Написать функцию заполнения конца строки заданным символом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 1
21.12.2013, 23:21     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #2
Вот. Как-то так.

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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    char str[128];
    memset(&str, 0, sizeof(str));
 
    char *newStr = nullptr;
    
    std::cout << "Введите строку; ";
    std::cin.get(str, 128);
 
    int len = 0;
 
    int dNum;
 
    std::cout << "Введите число дублирования символов: ";
    std::cin >> dNum;
 
    dNum = dNum > 5 ? 5 : dNum;
 
    len = strlen(str) * dNum;
 
    std::cout << "Каждый символ в строке будет дублироваться " << dNum << " раз\n";
 
    newStr = new char[len + 1];
 
    int i = 0;
 
    for (int j = 0; j < len; j += dNum)
    {
        for (int k = 0; k < dNum; k++)
            newStr[j + k] = str[i];
        i++;
    }
    newStr[len] = '\0';
    std::cout << newStr << "\n";
 
    delete [] newStr;
 
    system("pause");
    return 0;
}
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 15:28  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #3
ааааа, у меня ничего не работает -____- :С
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 1
22.12.2013, 16:26     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #4
Что пишет? (какие ошибки)
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 20:42  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #5
он не пишет ошибки, он выводит черный экран. у меня в программе перед эти нужно посчитать количество символов в строке, программа считает, а дальше ничего не делает :С, там в конце как раз ваш способ... я его переделывала пол дня, так и не заработал

черт, в конце не совсем ваше, там как я понимаю цикл в цикле, и видимо ( голова уже совсем не соображает) я решила сделать что-то похожее


#include <iostream>
#include <string>
#include "work_4.h"
using namespace std;
int main()
{
char tmp [80];
char* pS; // Объявление указателя под строку tmp
cout <<"Please, enter string " << endl;
do // Начало цикла, в котором будут вводиться и обрабатываться строки
{
cin.getline(tmp,80); // Ввод строки
pS = new char [ strlen(tmp) + 1]; // Выделение памяти под строку и нулевой байт
strcpy_s (pS, strlen(tmp) + 1, tmp); // Копирование строки в pS

if( isdigit(*pS)) // Проверка условия: если цифра ,
break; //то строки больше не вводятся
{
int count = strlen (pS) ;
cout << " Sum of elements = " << count << endl ;
return 0 ;
delete [] pS ;
}

for (int i(0); pS[i]; i++)
for (int j(0); j < 100; j++)
cout << pS [i] << endl;
}while (true);

delete [] pS;
system("pause");
return 0;
}
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
22.12.2013, 21:08     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #6
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
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
 
int main()
{
    std::string str,tmp;
    srand (time(NULL));
    std::cout <<"Stroka = ";
    getline (std::cin, str);
    int i = 0;
    int k = rand()%4 + 1;
    while (i<str.size())
    {
        tmp.erase (0,tmp.size());
        for (int j=1; j<=k; j++)
            tmp.append (1,str[i]);
        str.insert(i+1,tmp);
        i+=k+1;
    }
    std::cout <<str <<std::endl;
    return 0;
}
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 21:12  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #7
как -то уж очень намудрено тут.... :С я еще таких способов не знаю
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 1
22.12.2013, 21:27     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #8
Вот результат у меня =(
Миниатюры
обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов  
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 21:36  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #9
эх ( буду дальше разбираться :3 может получится

Добавлено через 1 минуту
а можно как-нибудь эти строчки

C++
1
2
memset(&str, 0, sizeof(str));
  char *newStr = nullptr;
заменить на более простой язык?
просто мы такое еще не проходили и не совсем понимаю что это.
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 1
22.12.2013, 21:45     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #10
Если убирать эту строчку - char *newStr = nullptr; то придется создать char newStr[?]; а размер указать заранее самый максимальный, т.к. неизвестно по сколько раз будет дублироваться каждый символ пока не введено кол-во.
Тогда это newStr = new char[len + 1]; и это delete [] newStr; нужно будет убрать.
А эта функция - memset(&str, 0, sizeof(str)); - удаляет "мусор" из массива, чтобы потом не было разных непонятных символов.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
22.12.2013, 21:46     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #11
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
#include <iostream>
#include <cstring>
 
const int n = 128;
 
int main()
{
    char str[n],tmp[n];
    std::cin.get (str,n);
    int i,k = 2,j = 0;
    for (i=0; i<strlen(str); i++)
    {
        tmp[j] = str[i];
        j+=k+1;
    }
    tmp[j] = '\0';
    for (i=1; i<strlen(tmp); i+=k+1)
    {
        for (j=i; j<i+k; j++)
            tmp[j] = tmp[i-1];
    }
    strcpy (str,tmp);
    std::cout <<tmp <<std::endl;
    return 0;
}
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 21:48  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #12
спасибо ^^ теперь стало понятней ))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 21:56     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
Еще ссылки по теме:

написать функцию заполнения конца строки заданным символом C++
Из заданной пользователем строки сформулируйте новую, добавив пробел перед каждым символом строки кроме пробела C++
C++ В строке найти количество встречающихся рядом символов соседних по алфавиту

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

Или воспользуйтесь поиском по форуму:
linberg
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 24
22.12.2013, 21:56  [ТС]     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов #13
спасибо вам большое!
но....
может у меня MVS сломалась...
выводит вот что
Миниатюры
обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов  
Yandex
Объявления
22.12.2013, 21:56     обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
Ответ Создать тему
Опции темы

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