Saltar al contenido

¿La función strrev () no está disponible en Linux?

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)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *