Tecnología

Inicio

Cómo leer una cadena en C

El lenguaje de programación C no proporciona un tipo de datos de cadena real. En C, una cadena es emulado por un conjunto de caracteres que termina en NULL. Ese conjunto se puede declarar de forma estática o como un puntero. Estándar C proporciona muchas funciones para manipular matrices de caracteres o cadenas C. Este artículo se centra en las funciones que se leen desde el flujo de entrada y de los archivos. Siga estos consejos para aprender a leer una cadena en C

Instrucciones

1 Entender los conceptos básicos. cadena AC es una matriz de tipo gráfico. Al igual que con todas las matrices C, el primer elemento está indexado a 0, y el último a "longitud de cadena de menos 1." Por lo general, el compilador inserta NULL en el último lugar, por lo que la cadena puede mantener "longitud de cadena de menos de 1" elementos. Nula es equivalente a 0x00 en forma de número entero y '\ 0' en forma de carbón. Los elementos se accede por el operador "[]". Paso 2 ilustra estos conceptos.

2 Añadir la "directiva include" de abajo a cualquier archivo de origen antes de utilizar las funciones de este tutorial:


#include <stdio.h>

3

Declarar una cadena C. El código siguiente muestra una declaración utilizando el método estático y el puntero:


// Declaración estática

Char str [50] = {0}; // Forma abreviada para inicializar todos los elementos a 0

// Str [49] es NULL

// Str tiene capacidad para 48 caracteres

// Declaración de puntero

char * pStr = NULL; // Hay reserva de memoria

pStr = (char *) malloc (50); // Esto se hace por "malloc ()"

4

Leer datos en una cadena C utilizando "scanf ()", que lee una serie de cadenas separadas por el espacio de la entrada estándar y los coloca en las direcciones que pertenecen a las variables de referencia apropiados, de acuerdo a una "cadena de formato":


int n;
printf ( "Introduzca su nombre y edad:");

scanf ( "% s% d", str, y n); //

printf ( "Su nombre es% s y que son de edad% d \ n", str, n);

5

Poner los datos en una cadena C utilizando la función más simple "gets ()", que lee los datos de la entrada estándar en solamente una cadena:


printf ( "introduzca Apellido:");

gets (str);

printf ( "Su nombre es% s \ n", str);

6

Leer datos de archivo en una cadena C utilizando "fscanf ()"; esta función es análoga a la "scanf ()":


ARCHIVO * pFile;

pfile = fopen ( "miArchivo.txt", "r"); // Asume el fichero existe y tiene los datos

si (NULL! = pFile) {

fscanf (pFile, "% s", str);

printf ( "La primera palabra en el archivo es% s \ n", str);

fclose (pFile);

}

7

Repita el paso 5 usando "fgets ()", que funciona igual que "se pone ()":


ARCHIVO * pFile;

pfile = fopen ( "miArchivo.txt", "r");
si (NULL! = pFile) {

fgets (pfile, str);

printf ( "La primera palabra en el archivo es% s \ n", str);

fclose (pFile);

}

Consejos y advertencias

  • Para obtener más información sobre las funciones mencionadas, visite el sitio web de C Plus Plus.
  • No trate de compilar este código. Sólo está destinado a demostrar las funciones. No es un programa coherente y dará a los errores cuando se compila.