Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luisito45 en 27 Abril 2017, 17:34 pm



Título: Quitar ciertos elementos de un Array
Publicado por: luisito45 en 27 Abril 2017, 17:34 pm
Buenas tarder;

Estoy empezando en este mundo de la programación y agradecería que me echaran una mano.
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5. int main ()
  6. {
  7.  
  8. char frase[50];
  9. int n;
  10.  
  11. n=0;
  12.  
  13. printf("Escribir una frase:\n");
  14.  
  15. gets(frase);
  16. if ((frase[n])!=(' '&','&'?'&'¿'&'!'&'¡'))
  17. {
  18. printf("%c", frase[n]);
  19. }
  20.  
  21. }

Lo que intento hacer con este script es que se borren los caracteres "?¿!¡,." al escribir una frase. El script obviamente no esta completo pero el problema que tengo es que solo quita los espacios de una frase y no el resto de simbolos.

Gracias y espero vuestra respuesta.


Título: Re: Quitar ciertos elementos de un Array
Publicado por: MAFUS en 27 Abril 2017, 18:22 pm
Debes venir de algún lenguaje de alto nivel, por cómo veo cómo tratas el if y lo llamas script.
Todas las opciones de una decisión tienen que estar escritas en su forma larga, y sí, es repetir mucho código.
En tu caso sería:
Código:
if ( frase[n] != ' ' &&
     frase[n] != ',' &&
     frase[n] != '?' &&
     frase[n] != '¿' &&
     frase[n] != '!' &&
     frase[n] != '¡' )

Por cierto & es el operador AND a nivel de bits. El operador lógico AND para todo el dato es &&.


Título: Re: Quitar ciertos elementos de un Array
Publicado por: luisito45 en 27 Abril 2017, 19:56 pm
Muchas Gracias!


Título: Re: Quitar ciertos elementos de un Array
Publicado por: kuhi en 28 Abril 2017, 01:14 am
Debes venir de algún lenguaje de alto nivel, por cómo veo cómo tratas el if y lo llamas script.
Todas las opciones de una decisión tienen que estar escritas en su forma larga, y sí, es repetir mucho código.
En tu caso sería:
Código:
if ( frase[n] != ' ' &&
     frase[n] != ',' &&
     frase[n] != '?' &&
     frase[n] != '¿' &&
     frase[n] != '!' &&
     frase[n] != '¡' )

Por cierto & es el operador AND a nivel de bits. El operador lógico AND para todo el dato es &&.
Buenas!!! 😊👍🏻 leyendo este post me sale una duda... antes de explicarme aviso soy principiante en C.
Yo siempre que he hecho este tipo de códigos he tenido que recorrer el array con un bucle.
Se puede hacer sin bucle de esta manera que enseñáis?
Entiendo que el bucle debería hacer n++ y así recorrer todos los chars.. entonces comparar con la condición if, en caso de no cumplirse saltar a un else o simplemente seguir a la línea que toque...
saludos y muchas gracias por vuestra atención! ❤️


Título: Re: Quitar ciertos elementos de un Array
Publicado por: MAFUS en 28 Abril 2017, 10:06 am
Existe el bucle pero no está reflejado en el código. luisito45 dice:
Citar
El script obviamente no esta completo pero [...]