Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Alexa_34 en 7 Julio 2021, 22:26 pm



Título: variables tipo char help!!!!
Publicado por: Alexa_34 en 7 Julio 2021, 22:26 pm
Hola, soy nueva en el foro y tambien en programacion, asi que estoy volando con algunos temas. Mi duda es sobre las variables del tipo char,  en algunos ejercicios me estan pidiendo leer espacios en blanco, saltos de linea o tabuladores, es decir que mi programa terminara cuando se lea cualquiera de esas cosas. He visto que usan la funcion getch o algo asi xd, pero en mi caso aun no me enseñan y no puedo aplicarlo para mis practicas, solo puedo usar scanf, printf, for, while, if, else, do while, y nada mas. Por fa, alguna idea de como hacerlo con scanf? y si es asi, pueden colocar en el foro como seria el codigo programa.


Título: Re: variables tipo char help!!!!
Publicado por: fzp en 8 Julio 2021, 19:54 pm
...me estan pidiendo leer espacios en blanco, saltos de linea o tabuladores...

¿De dónde? No queda muy clara tu pregunta, al menos para mí. La función scanf es para introducir datos formateados por teclado.

¿De dónde tienes que leer los caracteres?


Título: Re: variables tipo char help!!!!
Publicado por: el_dorado en 9 Julio 2021, 18:15 pm
Hola  ;D

por lo que he entendido( no se si te referieres a esto) es que tienes de entrada una cadena de caracteres y tienes que determinar si contiene alguna tabulacion,espacio en blanco o salto de linea.

Código
  1.  
  2. int function(char* string){
  3.  
  4. int i = 0;
  5. while(string[i] != '\0'){
  6.  
  7. if(string[i] == ' ' || string[i] == '\n' || string[i] == '\t') return 1;
  8. i++;
  9. }
  10.  
  11. return 0;
  12.  
  13. }
  14.  

la funciòn anterior toma como entrada un una cadena de caracteres, devuelve 1 si contiene algùn espacio,tabulador o salto de linea y 0 si no contiene ninguno de los caracteres anteriores.

espero que sea de ayuda. ;D ;D


Título: Re: variables tipo char help!!!!
Publicado por: Locura_23 en 9 Julio 2021, 19:48 pm
Hola genia, esos son caracteres especiales, pero funcionan igual que cualquier otro caracter:

salto de línea es '\n'
espacio en blanco es ' '
tabulación es '\t'

Por otro lado, me suena que querrás usar un do-while, así el bucle se ejecuta una vez y luego el usuario decide si salir o no.

Te dejo un ejemplo:

Código
  1. /**Programita para sumar dos números, hasta que el usuario quiera salir y apriete el caracter
  2. salto de linea (enter)**/
  3. #include <stdio.h>
  4.  
  5. int main()
  6. {
  7.    int num = 0, otro_num = 0;
  8.    char control = 0;
  9.  
  10.    do
  11.    {
  12.        printf("Ingrese un numero:\n");
  13.        scanf("%i",&num);
  14.        printf("Ingrese otro numero:\n");
  15.        scanf("%i",&otro_num);
  16.        printf("La suma de los numeros es: %i\n", num + otro_num);
  17.  
  18.        printf("Presione salto de linea para salir u otro caracter para seguir.\n");
  19.        fflush(stdin);
  20.        scanf("%c",&control);
  21.  
  22.    }while( control != '\n');
  23.  
  24.    return 0;
  25. }
  26.  
  27.  

Esto aplicalo con las demás caracteres que dijiste. Luego te recomiendo hecharle el vistazo a la tabla ASCII, todos los caracteres tambíen se pueden representar por sus números ASCII.

Luego, cuando sos principiante te suelen enseñar el fflush() que puedes ver arriba de la linea 19... los expertos no lo recomiendan así que no te fies mucho de eso. pero por ahora te sirve. Lo mismo con getch(), no es recomendado usarlo.