Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для terminalek

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте!
Я хотел проконсультироваться по поводу одного задания.
Нужно составить программку, которая будет сжимать текст таким образом:
что при команде project -c N (где N >=1, по этому параметру программа должна найти повторяющиеся блоки длиной N, максимально 9 повторяющихся знаков)
Для наглядности пример при N=3:
Цитата:
Было так:
"Uiiiiiii, blablabla" a "blebleble" a "hophop hophop"
Цитата:
Стало так:
"U2iiii, 3bla" a "3ble" a "2hop 2hop"
Для чтения поступающего текста можно лишь использовать не форматириующие функции, например getchar(), getc() или fgetc().
Сам текст будет состоять из букв латинского алфавита, цифр, пробелов, знака конца строки.
Мне пока не понятен план действий. То есть не могу составить алгоритм. В этом то и есть проблема. Так же актуален вопрос с помощью какой функции возможно реализовать замену текста (в php я знаю str_replace).

Была еще задача, целью которой было заменить последовательность пробелов, табуляций, одним пробелом/табом. Сам полностью рабочий код я не смог сделать, но нашел в интернете такой:
PHP код: Выделить весь код

#include <stdio.h>

#include <ctype.h>

int main(void)
{

   
int sp 0c;

   while( (
getchar()) != EOF) {
      if(
isspace(c)) {
         if(
sp)  // что означает данное условие? если  isspace возвращает 0?
         
continue; // суть continue тоже не совсем понял, объясните пжлст.
         
else sp 1// что дает sp = 1?
      
}
     else
     
sp 0;
     
putchar(c);
    }
    return 
0;


Если вас не затруднит ответить на вопросы в коде, то мне будет понятна суть работы программы. А то пытался для себя уяснить, пара моментов все же не понятна. Спасибо за внимание!
Пожалуйста при ответе ориентируйтесь на язык C, синтаксис C++ я пока не расматривал.

Отправлено: 02:22, 21-10-2010 | #100