un sistema operativo, los sistemas de programación aa, pueden tomar un carácter, una string y una oración como entrada en C.
Lectura de un carácter en C
Declaración del problema n. ° 1: escriba un programa en C para leer un solo carácter como entrada en C.
Sintaxis-
scanf("%c", &charVariable);
Acercarse-
- scanf() necesita conocer la ubicación de memoria de una variable para almacenar la entrada del usuario.
- Entonces, el ampersand se usará delante de la variable (aquí ch) para conocer la dirección de una variable.
- Aquí, usando el especificador de formato %c, el compilador puede entender que el tipo de datos de carácter está en una variable cuando se ingresa usando la función scanf()
C
// C program to implement // the above approach #include <stdio.h> // Driver code int main() { char ch; // Read a char type variable, // store in "ch" scanf("%c", &ch); printf("Output : %c", ch); return 0; }
Lectura de una palabra en C
Declaración del problema n.º 2: escriba un programa en C para leer palabras como entrada del usuario.
Sintaxis-
scanf("%s", stringvariable);
Acercarse-
- Primero, inicialice la array de caracteres de tamaño (mayores que son iguales a la longitud de la palabra).
- Luego, use el especificador de formato %s para tomar la string usando la función scanf().
C
// C Program to implement // the above approach #include <stdio.h> // Driver code int main() { char word[100]; // word is treated as a pointer // to the first element of array scanf("%s", word); printf("Output : %s", word); return 0; }
Nota:
el nombre de una array en sí mismo indica su dirección. word == &word[0], ambos son iguales. Es porque la variable nameword apunta al primer elemento de la array. Por lo tanto, no es necesario mencionar el ampersand en scanf().
Lectura de una oración en C
Declaración del problema n.º 3: escriba un programa en C para leer oraciones como entrada del usuario.
Método 1-
- scanf() no almacena el carácter de espacio en blanco en una variable de string.
- Solo lee caracteres que no sean espacios en blanco y los almacena en la array de caracteres especificada hasta que encuentra un carácter de espacio en blanco.
Sintaxis-
scanf("%[^\n]s", sen)
C
// C program to implement // the above approach #include <stdio.h> // Driver code int main() { char sen[100]; scanf("%[^\n]s", sen); printf("Output : %s", sen); return 0; }
scanf(“%[^\n]s”, sen) significa leer una string que incluye espacios hasta que se recibe la siguiente línea o leer una string hasta que se encuentra un salto de línea, es decir, \n, y almacenarla en una array denominada “sen”.
- Aquí, %[ ] es el especificador de scanset.
- scanf procesará solo aquellos caracteres que formen parte de scanset.
- Si el primer carácter del scanset es ‘^’, el especificador dejará de leer después de la primera aparición de ese carácter.
- ^\n significa tomar entrada hasta que no se encuentre una nueva línea.
C
// C program to implement // the above approach #include <stdio.h> // Driver code int main() { char sen[100]; scanf("%[^f]s", sen); printf("Output : %s", sen); return 0; }
Dejará de leer después de la primera aparición de ese carácterf (especificado en el scanset).
Método 2- Usando fgets
Nota: gets() nunca comprueba el límite máximo de caracteres de entrada. Por lo tanto, pueden causar un comportamiento indefinido y probablemente provocar un error de desbordamiento del búfer que finalmente hace que el programa se bloquee. Por lo tanto, es recomendable no usar la función gets para leer strings. Para superar la limitación anterior, se pueden usar fgets.
Sintaxis-
char *fgets(char *str, int size, FILE *stream)
C
// C program to implement // the above approach #include <stdio.h> #define BUFFSIZE 25 // Driver code int main() { char sen[BUFFSIZE]; fgets(sen, BUFFSIZE, stdin); printf("Output : %s", sen); return 0; }
Publicación traducida automáticamente
Artículo escrito por sathiyamoorthics19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA