#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void elimina_seguidos_repetidos(char *dst, const char *src) {
char ultimo = 0;
int i = 0, j = 0;
while (1) {
char c = src[i];
if (!c) break;
if (c != ultimo) {
dst[j] = c;
j++;
ultimo = c;
}
i++;
}
dst[j] = 0;
}
int main(void) {
char *entrada = "ggggggghgggg";
char novo[sizeof(entrada)];
printf("Entrada: %s\n", entrada
, novo
); elimina_seguidos_repetidos(novo, entrada);
printf("Entrada: %s Novo: %s\n", entrada
, novo
); char entrada2[50];
strcpy(entrada2
, "aaaaabaaaabaaabbbcaa"); printf("Antes: %s\n", entrada2
); elimina_seguidos_repetidos(entrada2, entrada2);
printf("Depois: %s\n", entrada2
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdm9pZCBlbGltaW5hX3NlZ3VpZG9zX3JlcGV0aWRvcyhjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykgewogICAgY2hhciB1bHRpbW8gPSAwOwogICAgaW50IGkgPSAwLCBqID0gMDsKICAgIHdoaWxlICgxKSB7CiAgICAgICAgY2hhciBjID0gc3JjW2ldOwogICAgICAgIGlmICghYykgYnJlYWs7CiAgICAgICAgaWYgKGMgIT0gdWx0aW1vKSB7CiAgICAgICAgICAgIGRzdFtqXSA9IGM7CiAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgdWx0aW1vID0gYzsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgfQogICAgZHN0W2pdID0gMDsKfQoKaW50IG1haW4odm9pZCkgewogICAgY2hhciAqZW50cmFkYSA9ICJnZ2dnZ2dnaGdnZ2ciOwogICAgY2hhciBub3ZvW3NpemVvZihlbnRyYWRhKV07CiAgICBwcmludGYoIkVudHJhZGE6ICVzXG4iLCBlbnRyYWRhLCBub3ZvKTsKICAgIGVsaW1pbmFfc2VndWlkb3NfcmVwZXRpZG9zKG5vdm8sIGVudHJhZGEpOwogICAgcHJpbnRmKCJFbnRyYWRhOiAlcyBOb3ZvOiAlc1xuIiwgZW50cmFkYSwgbm92byk7CiAgICBjaGFyIGVudHJhZGEyWzUwXTsKICAgIHN0cmNweShlbnRyYWRhMiwgImFhYWFhYmFhYWFiYWFhYmJiY2FhIik7CiAgICBwcmludGYoIkFudGVzOiAlc1xuIiwgZW50cmFkYTIpOwogICAgZWxpbWluYV9zZWd1aWRvc19yZXBldGlkb3MoZW50cmFkYTIsIGVudHJhZGEyKTsKICAgIHByaW50ZigiRGVwb2lzOiAlc1xuIiwgZW50cmFkYTIpOwogICAgcmV0dXJuIDA7Cn0K