English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous allez apprendre le langage C. Vous allez les déclarer, les initialiser et les utiliser dans divers I / O (input/Opération d'output)。
Dans le langage C, une chaîne de caractères est une séquence de caractères terminée par un caractère null \0. Par exemple:
char c[] = "c string";
Lorsque le compilateur rencontre une séquence de caractères encadrée par des guillemets doubles \0, il ajoute par défaut un caractère de fin de chaîne à la fin.
Voici comment déclarer une chaîne :
char s[5];
Ici, nous avons déclaré5Un tableau de caractères de taille
Vous pouvez initialiser une chaîne de caractères de plusieurs manières.
char c[] = "abcd"; char c[50] = "abcd"; char c[] = {'a', 'b', 'c', 'd', '\0'}; char c[5] = {'a', 'b', 'c', 'd', '\0'};
Laissez-nous prendre un autre exemple :
char c[5] = "abcde";
Ici, nous essayons de6Un caractère (le dernier caractère est '\0') est alloué à char5Un tableau de caractères de taille
Dans le langage C, une fois qu'un tableau ou une chaîne de caractères est déclaré, il ne supporte pas l'opérateur d'affectation.
char c[100]; c = "C programming"; // Erreur ! Le type d'array ne peut pas être alloué.
Attention :UtilisezLa fonction strcpy()au lieu de copier une chaîne de caractères.
Il est possible d'utiliser la fonction scanf() pour lire une chaîne de caractères.
La fonction scanf() lit une séquence de caractères jusqu'à ce qu'elle rencontre un espace (espace, retour chariot, tabulation, etc.).
#include <stdio.h> int main() { char name[20]; printf("Entrer le nom : "); scanf("%s", name); printf("Votre nom est %s.", name); return 0; }
Résultat de la sortie
Entrez le nom: Dennis Ritchie Votre nom est Dennis.
Même si Dennis Ritchie est entré dans le programme ci-dessus, la chaîne de caractères contient seulement “Dennis”. Car après Dennis il y a un espace.
Vous pouvez utiliser la fonction fgets() pour lire une ligne de chaîne. Et vous pouvez utiliser puts() pour afficher une chaîne.
#include <stdio.h> int main() { char name[30]; printf("Entrer le nom : "); fgets(name, sizeof(name), stdin); //Lire une chaîne printf("Nom : "); puts(name); //Afficher la chaîne return 0; }
Résultat de la sortie
Entrer le nom : Tom Hanks Nom : Tom Hanks
Ici, nous avons utilisé la fonction fgets() pour lire une chaîne de l'utilisateur.
fgets(name, sizeof(name), stdlin); //Lire une chaîne
le résultat de sizeof(name) est30. Par conséquent, nous pouvons accepter jusqu'à30 caractères en tant qu'entrée, c'est la taille de la chaîne name.
Pour imprimer une chaîne, nous avons utilisé put (name);
Attention :La fonction gets() peut également accepter les entrées de l'utilisateur. Mais elle a été supprimée de la norme C.
C'est parce que gets() vous permet d'entrer une longueur de caractères arbitraire. Par conséquent, il peut y avoir un débordement de tampon.
Les chaînes de caractères peuvent être passées à la fonction de la même manière que les tableaux. En savoir plus surPasser un tableau à la fonctionPlus d'informations.
#include <stdio.h> void displayString(char str[]); int main() { char str[50]; printf("Entrez une chaîne : "); fgets(str, sizeof(str), stdin); displayString(str); //Passer la chaîne à la fonction return 0; } void displayString(char str[]) { printf("Sortie de chaîne : "); puts(str); }
De même que pour les tableaux, le nom de la chaîne "atténuation" est dégradé en pointeur. Par conséquent, vous pouvez utiliser des pointeurs pour manipuler les éléments des chaînes de caractères. Nous vous recommandons de vérifier cet exemple avant de continuer.Tableaux et pointeurs en C。
#include <stdio.h> int main(void) { char name[] = "Harry Potter"; printf("%c", *name); // Sortie : H printf("%c", *(name+1)); // Sortie : a printf("%c", *(name+7)); // Sortie: o char *namePtr; namePtr = name; printf("%c", *namePtr); // Sortie : H printf("%c", *(namePtr+1)); // Sortie : a printf("%c", *(namePtr+7)); // Sortie: o }