fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main(void) {
  7. char *tab = malloc(30 + 1);
  8. if (tab == NULL) {
  9. return -1;
  10. }
  11. strcpy(tab, "123456789.123456789.123456789.");
  12. printf("Original string: %s\n", tab);
  13. size_t actualSize = strlen(tab);
  14.  
  15. int dotNumb = 0;
  16. for (int i = 0; i < actualSize; i++) {
  17. if (tab[i]=='.') {
  18. dotNumb++;
  19. }
  20. }
  21. const size_t newSize = dotNumb + actualSize + 1;
  22. tab = realloc (tab, newSize);
  23. if (tab == NULL) {
  24. free(tab);
  25. return -1;
  26. }
  27. tab[newSize] = '\0'; /* termination character */
  28. int j = newSize ;
  29. for (size_t cursor = actualSize; cursor > 0; cursor--) {
  30. if (tab[cursor] != '.') {
  31. tab[j--] = tab[cursor];
  32. }
  33. else {
  34. tab[j--] = ':';
  35. tab[j--] = ':';
  36. }
  37. }
  38. printf("Modified string: %s\n", tab);
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0s 2424KB
stdin
Standard input is empty
stdout
Original string: 123456789.123456789.123456789.
Modified string: 1223456789::123456789::123456789::