Convertir a hexadecimal

Iniciado por blozzter, Julio 26, 2011, 01:51:27 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 26, 2011, 01:51:27 PM Ultima modificación: Febrero 08, 2014, 05:46:02 PM por Expermicid
necesitaba una pequeña utilidad que permitiera la rápida conversión de texto a hexadecimal,
y nada mejor que uno mismo haga las cosas.

aquí el código:

Código: c


/*  conversor a hexadecimal
usage: hex word-to-convert [max length: 50]
            ---> example: hex blozzter
¡< blozzter >!
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char usage()
{
     printf("\t ---> usage: hex word-to-convert [max length: 50]\n\t ---> example: hex blozzter\n\n");
     }
     


int main(int argc, char *argv[])
{
  char *cadena;
  int i, tam;
 
  if (argc == 2) {  //me aseguro que se le haya pasado solo un argumento
           cadena = argv[1];
           tam = strlen(cadena);  //llamo a la funcion que calcula el tamaño
           
           if (tam <= 50) {  //admito un maximo de 50 caracteres
               printf("%s ==>\t", cadena);
               i = 0;
     
               while (cadena[i] != '\0') {  //mientras la cadena no termine, imprimo en hexadecimal ( %x )
                    printf("%x", cadena[i]);
                    i++;
                    }
                   
              printf("\n");
               }
            else {
                 usage();
                 }
               }
  else {
       usage();
       }
 
  return 0;
}



¡< blozzter >!

Jeje muy bueno, pero no es necesario declarar la variable tam, ni la variable cadena x) mejor ahorratelas

Código: php
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char usage()
{
     printf("\t ---> usage: hex word-to-convert [max length: 50]\n\t ---> example: hex blozzter\n\n");
     }
     


int main(int argc, char *argv[])
{
  int i;

  if (argc == 2) {  //me aseguro que se le haya pasado solo un argumento
           if (strlen(argv[1]) <= 50) {  //admito un maximo de 50 caracteres
               printf("%s ==>\t", argv[1]);
               for(i=0;argv[1][i]!='\0';i++) {  //mientras la cadena no termine, imprimo en hexadecimal ( %x )
                    printf("%X", argv[1][i]);
                    }
                   
              printf("\n");
               }
            else {
                 usage();
                 }
               }
  else {
       usage();
       }
       
  return 0;
}

:D saludos.!

tienes razón, muchas gracias por las sugerencias.


saludos.
¡< blozzter >!