Comment lire une chaîne en C. Le langage de programmation C ne fournit pas de type de données de chaîne réel. En C, une chaîne est émulée par un tableau de caractères qui se termine par NULL. Un tel tableau peut être déclaré statiquement ou sous forme de pointeur. Le C standard fournit de nombreuses fonctions pour manipuler des tableaux de caractères ou des chaînes C. Cet article se concentre sur les fonctions qui lisent à partir du flux d'entrée et des fichiers. Suivez ces conseils pour apprendre à lire une chaîne en C.
Étape 1
Comprendre les bases. Une chaîne C est un tableau de type graphique. Comme pour tous les tableaux C, le premier élément est indexé à 0 et le dernier à « longueur de chaîne moins 1 ». Habituellement, le compilateur insère NULL au dernier emplacement, de sorte que la chaîne peut contenir "la longueur de la chaîne moins 1" éléments. Null équivaut à 0x00 sous forme d'entier et à '\0' sous forme de caractère. Les éléments sont accessibles par l'opérateur "[]". L'étape 2 illustre ces concepts.
Vidéo du jour
Étape 2
Ajoutez la "directive include" ci-dessous à n'importe quel fichier source avant d'utiliser les fonctions de ce tutoriel :
#include < stdio.h >
Étape 3
Déclarez une chaîne C. Le code ci-dessous montre une déclaration utilisant la méthode statique et la méthode du pointeur :
// déclaration statique char str[50] = {0}; // raccourci pour initialiser tous les éléments à 0 // str[49] est NULL // str a une capacité de 48 caractères // déclaration par pointeur char pStr = NULL; // pas d'allocation de mémoire pStr = (char)malloc (50); // ceci est fait par "malloc()"
Étape 4
Lire les données dans une chaîne C à l'aide de « scanf() », qui lit une série de chaînes séparées par un espace par rapport à la norme saisie et les place dans les adresses appartenant aux variables de référence appropriées, selon un « format chaîne de caractères":
entier n; printf("Entrez votre Prénom et Age: "); scanf("%s%d", str, &n); // printf("Votre nom est %s et vous êtes %d ancien\n", str, n);
Étape 5
Mettez les données dans une chaîne C à l'aide de la fonction plus simple "gets()", qui lit uniquement les données de l'entrée standard dans une chaîne :
printf("Entrez votre nom: "); obtient (str); printf("Votre nom est %s\n", str);
Étape 6
Lire les données du fichier dans une chaîne C à l'aide de "fscanf()"; cette fonction est analogue à "scanf()":
FICHIER* pFichier; pFichier = fopen("monFichier.txt", "r"); // suppose que le fichier existe et qu'il contient des données if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Le premier mot du fichier est %s\n", str); fclose (pFichier); }
Étape 7
Répétez l'étape 5 en utilisant "fgets()", qui fonctionne de la même manière que "gets()":
FICHIER* pFichier; pFichier = fopen("monFichier.txt", "r"); if (NULL != pFichier) { fgets (pFichier, str); printf("Le premier mot du fichier est %s\n", str); fclose (pFichier); }
Choses dont vous aurez besoin
C/C++ IDE ou compilateur C
Livre sur C, comme "The C Programming Language" de Brian W. Kernighan
Pointe
Pour en savoir plus sur les fonctions mentionnées, visitez le site Web de C Plus Plus.
Avertissement
N'essayez pas de compiler ce code. Il est uniquement destiné à démontrer les fonctions. Ce n'est pas un programme cohérent et donnera des erreurs lors de la compilation.