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

Строки: заменить каждый символ '/' на пару символов ':' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
15.05.2013, 16:32     Строки: заменить каждый символ '/' на пару символов ':' #1
Подсчитать количество пар '23' и '45' по отдельности и заменить каждый символ '/' на пару символов ': '. С использование библиотеки string.h

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
void task1(char *s, int &kol1, int &kol2)
{
        char *r;
        char a[30];
        r=s;
        while((r=strstr(r,"23"))!=0)
        {
            kol1++;
            r++;
        }
        r=s;
        while((r=strstr(r,"45"))!=0)
        {
            kol2++;
            r++;
        }
        r=s;
        while((r=strstr(r,"/"))!=0)
        {
        *r=':';
        strcpy(s,r);
        }
       r=s;
       while(1)
       {
        r=strchr(r,':');
        if (r==NULL) break;
        r++;
        strcpy (s,r);
        *r=' ';
       strcat(s,r);
       }
      r=s;
}
P.S. первую часть задания сделал, а вот со второй траблы, нахожу '/' а заменить на ': ' немогу, вставляет только :, пробел не вставляет. Наверно нужно увеличить строку на кол-во символов равно сколько раз встречается '/'. Требуется помощь с реализацией.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 16:32     Строки: заменить каждый символ '/' на пару символов ':'
Посмотрите здесь:

C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
C++ Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ
C++ В строке символов заменить каждый второй символ s на f
Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» C++
Преобразовать строку, удалив каждый символ * и удвоив каждый символ, отличный от * C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Flassie
181 / 166 / 29
Регистрация: 03.08.2012
Сообщений: 591
Завершенные тесты: 2
15.05.2013, 16:38     Строки: заменить каждый символ '/' на пару символов ':' #2
'abc' - нельзя
"abc" - можно.
Одинарные кавычки ( ' ' ) - только для одного символа
Двойные кавычки ( " " ) - для одного и больше символов
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
15.05.2013, 21:54  [ТС]     Строки: заменить каждый символ '/' на пару символов ':' #3
Вот так пробывал, не работает

Добавлено через 1 час 47 минут
strcpy(r+1,r+1) пробывал манипулировать с этой строчкой, не выходит(

Добавлено через 1 час 3 минуты
Помогите, я знаю что ошибка тут strcpy((

Добавлено через 2 часа 14 минут
Ну помогите добрые люди, заменить 1 символ на 2 символа(
Flassie
181 / 166 / 29
Регистрация: 03.08.2012
Сообщений: 591
Завершенные тесты: 2
16.05.2013, 01:26     Строки: заменить каждый символ '/' на пару символов ':' #4
Не проще перебирать циклом строку, искать '/' и записывать в новый массив с двумя символами?
C++
1
2
3
4
5
6
7
8
9
10
for(int i = 0, j=0; i < strlen(text); i++){
   if(text[i]=='/'){
      newText[j]=':';
      newText[j+1]=' ';
      j+=2;
      continue;
   }
   newText[j]=text[i];
   j++;
}
Примерно так
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
16.05.2013, 16:57  [ТС]     Строки: заменить каждый символ '/' на пару символов ':' #5
Так я тоже могу написать, но мне нужно использовать функции библиотеки string.h.

Добавлено через 6 часов 33 минуты
Спасибо за помощь, сам написал как мне нужно было)
Yandex
Объявления
16.05.2013, 16:57     Строки: заменить каждый символ '/' на пару символов ':'
Ответ Создать тему
Опции темы

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