fork download
  1. #include <stdio.h>
  2.  
  3. #define CERO 1
  4. #define UNO 2
  5. #define DOS 3
  6.  
  7. int mi_strlen(char *str){
  8. int num_char;
  9. while(*str!='\0'){
  10. num_char++;
  11. str++;
  12. }
  13. return num_char;
  14. }
  15.  
  16. char* mi_strcpy(char* d, char* s) {
  17. int c = 0;
  18.  
  19. while (s[c] != '\0') {
  20. d[c] = s[c];
  21. c++;
  22. }
  23. d[c] = '\0';
  24.  
  25. return d;
  26. }
  27.  
  28. char* mi_strcat(char* s1, char* s2){
  29. char concatena[mi_strlen(s1)+mi_strlen(s2)+1];
  30. char *con_ptr;
  31. con_ptr = concatena;
  32. while(*s1!='\0'){
  33. *con_ptr=*s1;
  34. con_ptr++;
  35. s1++;
  36. }
  37. while(*s2!='\0'){
  38. *con_ptr=*s2;
  39. con_ptr++;
  40. s2++;
  41. }
  42. con_ptr++;
  43. *con_ptr='\0';
  44. s1=concatena;
  45. return s1;
  46. }
  47.  
  48. int main(void) {
  49. char *str;
  50. char str_uno[UNO] = "A";
  51. char str_cero[CERO] = "";
  52. char str_espacios[DOS] = " ";
  53. char str_copiada[11];
  54.  
  55. str = str_uno;
  56. int cuenta = mi_strlen(str);
  57.  
  58. printf("Cuenta %d y debería ser %d\n", cuenta, UNO-1);
  59.  
  60. str = str_cero;
  61. cuenta = mi_strlen(str);
  62.  
  63. printf("Cuenta %d y debería ser %d\n", cuenta, CERO-1);
  64.  
  65. str = str_espacios;
  66. cuenta = mi_strlen(str);
  67.  
  68. printf("Cuenta %d y debería ser %d\n", cuenta, DOS-1);
  69.  
  70. char *s1;
  71. char *s2;
  72. s1 = str_copiada;
  73. s2 = str_uno;
  74. printf("s1 es: \"%s\" y debería ser s2: %s\n",mi_strcpy(s1,s2),s2);
  75.  
  76. char str_copiada2[11];
  77. s1 = str_copiada2;
  78. s2 = str_cero;
  79. printf("s1 es: \"%s\" y debería ser s2: \"%s\"\n",mi_strcpy(s1,s2),s2);
  80.  
  81. char str_copiada3[11];
  82. s1 = str_copiada3;
  83. s2 = str_espacios;
  84. printf("s1 es: \"%s\" y debería ser s2: \"%s\"\n",mi_strcpy(s1,s2),s2);
  85.  
  86. return 0;
  87. }
  88.  
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
Cuenta 1 y debería ser 1
Cuenta 0 y debería ser 0
Cuenta 2 y debería ser 2
s1 es: "A" y debería ser s2: A
s1 es: "" y debería ser s2: ""
s1 es: "  " y debería ser s2: "  "