Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: rembolso en 29 Enero 2011, 17:11 pm



Título: pasar int to char y Viceversa
Publicado por: rembolso en 29 Enero 2011, 17:11 pm
hola. tengo un problema de variables en qt4. quiro que un numero de una cadena de numeros remplaze la letra correspondien al numero ej:

numero 1667 , cadena "abcdefgh"

numero 1 = a
numero 6= f
numero 6= f
numero 7= g
                                       y queda formada la palabra affg
ak les pongo el codigo q tnego yo pero tengo problemas de pasaje de variables como se puede sucionar

Código
  1.     QString str = ui->texto1->text();
  2.       int n = str.size(),i,a;
  3. a++;
  4.  
  5.    for (i=0; i<a; i++)
  6.    {                               // problema de pasar a to char y char to int
  7.      ui->texto->setText(mid(str.toAscii(),mid(a,i,1),1));
  8.    }
  9.  

alguna sugerencia..


Título: Re: pasar int to char y Viceversa
Publicado por: The Swash en 29 Enero 2011, 18:54 pm
Hola amigo buen día, analice tu problema, y creo que alguna vez me tope con algo así, el hecho de esto es que hay sacar el número de números que compongan a la cifra, para esto usamos el operador mod y reducimos el archivo en su ultima cifra hasta llegar al último, te hice un ejemplo sencillo en una función espero te sea de útilidad, cualquier duda avisanos. Saludos

Código
  1. #include <stdio.h>
  2.  
  3. char * Cadena(int number, char * cadena);
  4.  
  5. int main(void)
  6. {
  7.    printf("%s ", Cadena(1667,"abcdefgh")); //return "affg"
  8.    getchar();
  9. }
  10.  
  11. char * Cadena(int number, char * cadena)
  12. {
  13.     int i = 0;
  14.     int tNum = 0;
  15.     int ilen = 0;
  16.     int altNum = number;
  17.     int * n = NULL;
  18.     char * cadenareturn;
  19.     while (number > 0)
  20.     {
  21.           tNum = number % 10;
  22.           number = number / 10;
  23.           ilen++;
  24.     }
  25.     n = (int *) malloc (sizeof(int) * ilen);
  26.     for (i = (ilen - 1); i >= 0; i--)
  27.     {
  28.         n[i] = altNum % 10;
  29.         altNum /= 10;
  30.     }
  31.     cadenareturn = (char *) malloc(ilen);
  32.     memset(cadenareturn, 0, ilen + 1);
  33.     for (i = 0; i < ilen; i++)
  34.     {
  35.         cadenareturn[i] = cadena[n[i]-1];
  36.     }
  37.     free(n);
  38.     return cadenareturn;
  39. }


Título: Re: pasar int to char y Viceversa
Publicado por: rembolso en 29 Enero 2011, 18:58 pm
muchas gracias me sirvio de mucho


Título: Re: pasar int to char y Viceversa
Publicado por: The Swash en 29 Enero 2011, 19:03 pm
Espero que más de que te sirva la función, la analices y aprendas de ella, seguramente así será más de utilidad.

Saludos y me alegra que te aya servido pero toma en cuenta lo que te dije.