Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Renata94 en 1 Mayo 2019, 01:15 am



Título: c /copiar solo caracteres numericos de una cadena alfanumerica a otra
Publicado por: Renata94 en 1 Mayo 2019, 01:15 am
hola  amigos del elhacker.net soy nuevo en la programacion de C y trato de hacer un programa donde declare dos cadenas una alfanumerica y luego copien en la cadena 2 solo los caracteres numericos..sin usar las funciones strlen y strncpy hasta ahora hice esto pero no me sale.. ayudaaa!!!

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


int main()
{
    char cad1[100];
   char cad2[100];
   int i,n;

   printf("Introduce una palabra: ");
   gets(cad1);
   puts(cad1);

    n=0;
    i=0;
   for(i=0;i<=99;i++)

   {
      if(cad1=='9'-'0')
      {
         cad2[n]=cad1;
         n++;
      }
   }
   puts(cad2);
    return 0;


Título: Re: c /copiar solo caracteres numericos de una cadena alfanumerica a otra
Publicado por: MAFUS en 1 Mayo 2019, 01:36 am
En C no existen listas tipo '9'-'0'. De hecho eso es una operación matemática que da como resultado 9. El código ASCII para '9' es 57 y el de '0' es 48, 57-48=9.


Título: Re: c /copiar solo caracteres numericos de una cadena alfanumerica a otra
Publicado por: codX en 4 Mayo 2019, 06:32 am
Hola

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char copy(char *lineOut, char *lineIn);
  5.  
  6. int main()
  7. {
  8. char lineOut[45];
  9. char lineIn[40] = "Tr4b4j4nd0 c0n num3r0s y l3tr4s";
  10.  
  11. copy(lineOut, lineIn);
  12. printf("%s\n", lineOut);
  13. return 0;
  14. }
  15.  
  16. char copy(char *lineOut, char *lineIn)
  17. {
  18. int i = 0;
  19. int j = 0;
  20. char *pline = lineOut;
  21.  
  22. while(*(lineIn + i) != '\0')
  23. {
  24. if(*(lineIn + i) >= 48 && *(lineIn + i) <= 57)
  25. *(lineOut +j++) = *(lineIn + i);
  26. i++;
  27. }
  28. return *pline;
  29. }

Espero que te sirva. Suerte!


Título: Re: c /copiar solo caracteres numericos de una cadena alfanumerica a otra
Publicado por: CalgaryCorpus en 4 Mayo 2019, 16:06 pm
No olvidar poner el '\0' final al string destino.