fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void elimina_seguidos_repetidos(char *dst, const char *src) {
  6. char ultimo = 0;
  7. int i = 0, j = 0;
  8. while (1) {
  9. char c = src[i];
  10. if (!c) break;
  11. if (c != ultimo) {
  12. dst[j] = c;
  13. j++;
  14. ultimo = c;
  15. }
  16. i++;
  17. }
  18. dst[j] = 0;
  19. }
  20.  
  21. int main(void) {
  22. char *entrada = "ggggggghgggg";
  23. char novo[sizeof(entrada)];
  24. printf("Entrada: %s\n", entrada, novo);
  25. elimina_seguidos_repetidos(novo, entrada);
  26. printf("Entrada: %s Novo: %s\n", entrada, novo);
  27. char entrada2[50];
  28. strcpy(entrada2, "aaaaabaaaabaaabbbcaa");
  29. printf("Antes: %s\n", entrada2);
  30. elimina_seguidos_repetidos(entrada2, entrada2);
  31. printf("Depois: %s\n", entrada2);
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 4336KB
stdin
Standard input is empty
stdout
Entrada: ggggggghgggg
Entrada: ggggggghgggg Novo: ghg
Antes: aaaaabaaaabaaabbbcaa
Depois: abababca