La guía paso a paso o código que encontrarás en este post es la solución más sencilla y efectiva que hallamos a tus dudas o problema.
Solución:
Correcto. Utilice una de las implementaciones alternativas disponibles:
#include
char *strrev(char *str)
char *p1, *p2;
if (! str
#include
char *strrev(char *str)
Desafortunadamente, strrev
parece estar ausente de glibc string.h
.
Obviamente, llego tarde a la fiesta de “aquí hay algo de código”, pero me gusta esta implementación.
#define MAX_CHARS 10000
// safe_usub -- perform safe unsigned subtraction
size_t safe_usub (size_t x, size_t y)
return x > y ? x - y : y - x ;
char* str_reverse (const char* const str)
if (!str) return NULL;
size_t len = strnlen(str, MAX_CHARS);
char* new = malloc( sizeof(char) * len );
size_t i;
for (i = 0; i < len; i++)
new[i] = str[ safe_usub(i + 1, len) ];
new[i] = 0;
return new;
Te mostramos las comentarios y valoraciones de los lectores
Nos puedes ayudar nuestro trabajo añadiendo un comentario y valorándolo te damos la bienvenida.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)