Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Chaînes de programmation C

Chaînes de programmation C

Dans ce didacticiel, vous découvrirez les chaînes en programmation C. Vous apprendrez à les déclarer, à les initialiser et à les utiliser pour diverses opérations d'E/S à l'aide d'exemples.

En programmation C, une chaîne est une séquence de caractères terminée par un caractère nul \0 . Par exemple :

char c[] = "c string";

Lorsque le compilateur rencontre une séquence de caractères entre guillemets doubles, il ajoute un caractère nul \0 à la fin par défaut.

Comment déclarer une chaîne ?

Voici comment déclarer des chaînes :

char s[5];

Ici, nous avons déclaré une chaîne de 5 caractères.

Comment initialiser les chaînes ?

Vous pouvez initialiser des chaînes de différentes manières.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};

Prenons un autre exemple :

char c[5] = "abcde";

Ici, nous essayons d'attribuer 6 caractères (le dernier caractère est '\0' ) à un char tableau de 5 caractères. C'est mauvais et vous ne devriez jamais faire cela.

Attribuer des valeurs aux chaînes

Les tableaux et les chaînes sont des citoyens de seconde classe en C ; ils ne prennent pas en charge l'opérateur d'affectation une fois qu'il est déclaré. Par exemple,

char c[100];
c = "C programming";  // Error! array type is not assignable.

Remarque : Utilisez la fonction strcpy() pour copier la chaîne à la place.

Lire la chaîne de l'utilisateur

Vous pouvez utiliser le scanf() fonction pour lire une chaîne.

Le scanf() la fonction lit la séquence de caractères jusqu'à ce qu'elle rencontre un espace (espace, saut de ligne, tabulation, etc.).

Exemple 1 :scanf() pour lire une chaîne

#include <stdio.h>
int main()
{
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

Sortie

Enter name: Dennis Ritchie
Your name is Dennis.

Même si Dennis Ritchie a été saisi dans le programme ci-dessus, seul "Dennis" a été stocké dans le nom chaîne de caractères. C'est parce qu'il y avait un espace après Dennis .

Notez également que nous avons utilisé le code nom au lieu de &name avec scanf() .

scanf("%s", name);

C'est parce que nom est un char array, et nous savons que les noms de tableau se désintègrent en pointeurs en C.

Ainsi, le nom en scanf() pointe déjà vers l'adresse du premier élément de la chaîne, c'est pourquoi nous n'avons pas besoin d'utiliser & .

Comment lire une ligne de texte ?

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

Exemple 2 :fgets() et puts()

#include <stdio.h>
int main()
{
    char name[30];
    printf("Enter name: ");
    fgets(name, sizeof(name), stdin);  // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
}

Sortie

Enter name: Tom Hanks
Name: Tom Hanks

Ici, nous avons utilisé fgets() fonction pour lire une chaîne de l'utilisateur.

fgets(name, sizeof(name), stdlin); // read string

Le sizeof(name) résultats à 30. Par conséquent, nous pouvons prendre un maximum de 30 caractères en entrée, ce qui correspond à la taille du nom chaîne.

Pour imprimer la chaîne, nous avons utilisé puts(name); .

Remarque : Le gets() La fonction peut également être de prendre l'entrée de l'utilisateur. Cependant, il est retiré de la norme C.

C'est parce que gets() vous permet de saisir n'importe quelle longueur de caractères. Par conséquent, il peut y avoir un débordement de tampon.

Passer des chaînes aux fonctions

Les chaînes peuvent être transmises à une fonction de la même manière que les tableaux. En savoir plus sur la transmission de tableaux à une fonction.

Exemple 3 :Transmission d'une chaîne à une fonction

#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    fgets(str, sizeof(str), stdin);             
    displayString(str);     // Passing string to a function.    
    return 0;
}
void displayString(char str[])
{
    printf("String Output: ");
    puts(str);
}

Chaînes et pointeurs

Semblables aux tableaux, les noms de chaînes sont "décomposés" en pointeurs. Par conséquent, vous pouvez utiliser des pointeurs pour manipuler des éléments de la chaîne. Nous vous recommandons de vérifier les tableaux C et les pointeurs avant de vérifier cet exemple.

Exemple 4 :Chaînes et pointeurs

#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o
}

Fonctions de chaîne couramment utilisées

  • strlen() - calcule la longueur d'une chaîne
  • strcpy() - copie une chaîne dans une autre
  • strcmp() - compare deux chaînes
  • strcat() - concatène deux chaînes

Langue C

  1. C chaîne
  2. Espaces de noms dans la programmation C#
  3. Chaînes Java
  4. Chaînes d'énumération Java
  5. Chaînes C++ :strcpy(), strcat(), strlen(), strcmp() EXEMPLES
  6. Chaînes en C :comment déclarer une variable, initialiser, imprimer, exemple
  7. Chaînes Python :Remplacer, Joindre, Diviser, Inverser, Majuscules et Minuscules
  8. C Tutoriel
  9. Java - Classe de chaînes