Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 5

Указатели и строки

24.06.2010, 05:00. Показов 855. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите решить такую задачу
Найти в строке последовательности , состоящие из одного повтопяющегося символа, и заменить его на число символов и один символ, например мммммм - 5м
Реализовал вот так:

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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
void Simvol(char *c)
 {
      int i,j,k,m; 
        for (i=0; c[i]!=0; i++) 
                {
                     if(c[i]!=' ' && c[i]==c[i+1]) 
                        {          
                for (j=i, k=1; c[j]==c[j+1]; k++, j++);                             if (k>=10) c[i++] = k/10 + '0';c[i++] = k%10+'0';
              for(j++, m=i+1; c[j]!=0; j++, m++) c[m]=c[j];
                      c[m]=0;
                       }
                }
}
 
 int main()
 {
 char m[80]="ccccccceeaa dfgdfg hhhhhhhh ttsvvvgggg zzzzzzzz kkkkkkkk sdrgbbjr";//Строка
 SetConsoleCP(1251); 
 SetConsoleOutputCP(1251); 
 Simvol(m);
 puts(m);
}
Подскажите как реализовать функцию используя указатели?

Добавлено через 11 часов 39 минут
Очень сильно надо, может кто помочь?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2010, 05:00
Ответы с готовыми решениями:

Указатели, символьные строки и функции: удалить из строки слово с заданным номером
Функция удаляет из строки слово с заданным номером: не знаю как делать, сделал через swich case но нужно без них

Указатели.Строки и указатели
Вот условия ввода строки:Вводить и обрабатывать строки в цикле до тех пор пока первый символ не пробел Условия обработки строки: ...

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

3
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
24.06.2010, 05:26
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* compress(char *s)
{
    int len = strlen(s);
    char *res = (char*)malloc(len+1);
    int curLen = 0;
    int cnt = 1;
    for(int i = 0; i < len; i++)
        if(i == len-1 || s[i] != s[i+1])
        {
            if(cnt > 1)
                curLen += sprintf(res+curLen,"%d",cnt);
            curLen += sprintf(res+curLen,"%c",s[i]);
            cnt = 1;
        }
        else
            cnt++;
    res[curLen] = 0;
    return res;
}
0
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 5
24.06.2010, 12:53  [ТС]
Цитата Сообщение от Хохол Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* compress(char *s)
{
    int len = strlen(s);
    char *res = (char*)malloc(len+1);
    int curLen = 0;
    int cnt = 1;
    for(int i = 0; i < len; i++)
        if(i == len-1 || s[i] != s[i+1])
        {
            if(cnt > 1)
                curLen += sprintf(res+curLen,"%d",cnt);
            curLen += sprintf(res+curLen,"%c",s[i]);
            cnt = 1;
        }
        else
            cnt++;
    res[curLen] = 0;
    return res;
}
Спасибо! Но немного не то, нужна реализация с помощью указаетелей используя операции ++ и --
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
24.06.2010, 13:08
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* compress(char *s)
{
    int len = strlen(s);
    char *res = (char*)malloc(len+1);
    char *ptr = res;
    int cnt = 1;
    for(int i = 0; i < len; i++)
        if(i == len-1 || s[i] != s[i+1])
        {
            if(cnt > 1)
                ptr += sprintf(ptr,"%d",cnt);
            ptr += sprintf(ptr,"%c",s[i]);
            cnt = 1;
        }
        else
            cnt++;
    *ptr = 0;
    return res;
}
Ну негде тут ++ и -- присобачить, и без них получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2010, 13:08
Помогаю со студенческими работами здесь

Указатели на строки
Доброго всем времени суток! Не понимаю почему указатели на строки возвращают всю строку char может содержать только один символ в...

Строки и указатели в C++
Проверить правильность расположения в тексте круглых скобок (количество открывающихся и закрывающихся скобок должно совпадать). Пользуясь...

указатели и строки?
Люди помогите понять, ни как не дается это страшное слово указатель. Так в общем немного ясно, не понятно вот что: Считается что эти...

Указатели и строки
1. В коде есть такой кусок: sc = stack.pop(); printf(&quot;#%s %d#&quot;, &amp;sc, sc); sc имеет тип unsigned int, понятно что там хранится...

Строки и указатели........
Помогите написать прогу с помощью которой - вводится имя,фамилия,отчество а вывоится фамилия и инициалы то есть - Пушкин Александр...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru