Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод- C++(Си)

Кодирование осуществляется следующим образом:
s = ‘aaaabbсaa’ преобразуется в ‘a4b2с1a2’, то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.

#include <stdio.h>
#include <string.h>
 
int main()
{
    int cnt;
    char smb;
    char code[80];
    char encode[80];
    char str[80];
 
    scanf("%s", code);
 
    strcpy(encode, "");
    smb = code[0];
    cnt = 0;
 
    for (int i = 0; i <= strlen(code); i++) {
        if (code[i]==smb) {
            cnt++;
        }
        else {
            sprintf(str, "%d", cnt);
            strcat(encode, str);
            sprintf(str, "%c", smb);
            strcat(encode, str);
            smb = code[i];
            cnt = 1;
        }
    }
 
    printf("%s\n", encode);
 
    return 0;
}

Leave a Comment