Cómo leer una cadena en C

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 emulada por una matriz de caracteres que termina en NULL. Una matriz de este tipo se puede declarar estáticamente o como un puntero. C estándar proporciona muchas funciones para manipular matrices de caracteres o cadenas C. Este artículo se centra en las funciones que leen del flujo de entrada y de los archivos. Siga estos consejos para aprender a leer una cadena en C.

Paso 1

Comprende los conceptos básicos. Una cadena C es una matriz de tipo gráfico. Al igual que con todas las matrices de C, el primer elemento se indexa en 0 y el último en "longitud de cadena menos 1". Por lo general, el compilador inserta NULL en la última ubicación, por lo que la cadena puede contener elementos de "longitud de cadena menos 1". Nulo es equivalente a 0x00 en forma de número entero y '\0' en forma de caracteres. Se accede a los elementos mediante el operador "[]". El paso 2 ilustra estos conceptos.

Paso 2

Agregue la "directiva de inclusión" a continuación a cualquier archivo fuente antes de usar las funciones de este tutorial:

#incluir

Paso 3

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

// declaración estática char str[50] ={0}; // forma abreviada de inicializar todos los elementos a 0 // str[49] es NULL // str tiene capacidad para 48 caracteres // declaración por puntero char pStr =NULL; // sin asignación de memoria pStr =(char )maloc(50); // esto se hace con "malloc()"

Paso 4

Lea datos en una cadena C usando "scanf()", que lee una serie de cadenas separadas por espacios de la entrada estándar y las coloca en las direcciones que pertenecen a las variables de referencia apropiadas, de acuerdo con una "cadena de formato":

int n; printf("Ingrese su nombre y edad:"); scanf("%s%d", cadena, &n); // printf("Su nombre es %s y tiene %d edad\n", str, n);

Paso 5

Coloque los datos en una cadena C usando la función "gets()" más simple, que lee los datos de la entrada estándar en una cadena únicamente:

printf("Ingrese su Apellido:"); obtiene(cadena); printf("Su nombre es %s\n", cadena);

Paso 6

Lea los datos del archivo en una cadena C usando "fscanf ()"; esta función es análoga a "scanf()":

ARCHIVO* pArchivo; pArchivo =fopen("miArchivo.txt", "r"); // asume que el archivo existe y tiene datos if (NULL !=pFile) { fscanf(pFile, "%s", str); printf("La primera palabra del archivo es %s\n", str); fclose(pArchivo);

Paso 7

Repita el Paso 5 usando "fgets()", que funciona igual que "gets()":

ARCHIVO* pArchivo; pArchivo =fopen("miArchivo.txt", "r"); if (NULL !=pFile) { fgets(pFile, str); printf("La primera palabra del archivo es %s\n", str); fclose(pArchivo);

Consejo

Para obtener más información sobre las funciones mencionadas, visite el sitio web de C Plus Plus.

Advertencia

No intentes compilar este código. Solo está destinado a demostrar las funciones. No es un programa coherente y dará errores cuando se compile.