English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base du langage C

Contrôle de flux du langage C

Fonctions du langage C

Tableaux en langage C

Pointeurs en langage C

Chains de caractères en langage C

Structure de langage C

Fichier de langage C

Autres C

Manuel de référence du langage C

Chains de caractères en langage C

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.

Comment déclarer une chaîne ?

Voici comment déclarer une chaîne :

char s[5];

Ici, nous avons déclaré5Un tableau de caractères de taille

Comment initialiser une chaîne de caractères ?

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

Affectation de la chaîne

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.

Lecture de la chaîne de caractères à partir de l'utilisateur

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.).

Exemple1:scanf() lit une chaîne de caractères

#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.

Comment lire une ligne de texte ?

Vous pouvez utiliser la fonction fgets() pour lire une ligne de chaîne. Et vous pouvez utiliser puts() pour afficher une chaîne.

Exemple2:fgets() et puts()

#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.

Passer la chaîne à la fonction

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.

Exemple3:Passer la chaîne à la fonction

#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);
}

:chaînes de caractères et pointeurs

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

Exemple4:chaînes de caractères et pointeurs

#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
}

Fonctions de chaînes de caractères courantes