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 en C :comment déclarer une variable, initialiser, imprimer, exemple

Qu'est-ce qu'une chaîne en C ?

Une chaîne en C n'est rien d'autre qu'une collection de caractères dans une séquence linéaire. 'C' traite toujours une chaîne comme une seule donnée même si elle contient des espaces. Un caractère unique est défini à l'aide d'une représentation par apostrophe. Une chaîne est représentée par des guillemets doubles.

Example, "Welcome to the world of programming!"

'C' fournit la bibliothèque standard qui contient de nombreuses fonctions qui peuvent être utilisées pour effectuer facilement des opérations compliquées sur des chaînes en C.

Dans ce tutoriel, vous apprendrez-

Comment déclarer et initialiser une chaîne en C

Une chaîne C est un simple tableau avec char comme type de données. Le langage « C » ne prend pas directement en charge la chaîne en tant que type de données. Par conséquent, pour afficher une chaîne en C, vous devez utiliser un tableau de caractères.

La syntaxe générale pour déclarer une variable en tant que chaîne en C est la suivante,

char string_variable_name [array_size];

La déclaration classique des chaînes peut se faire comme suit :

 char string_name[string_length] = "string";

La taille d'un tableau doit être définie lors de la déclaration d'une variable de chaîne C car elle est utilisée pour calculer le nombre de caractères qui seront stockés dans la variable de chaîne en C. Voici quelques exemples valides de déclaration de chaîne :

char first_name[15];    //declaration of a string variable
char last_name[15];

L'exemple ci-dessus représente des variables de chaîne avec une taille de tableau de 15. Cela signifie que le tableau de chaînes C donné est capable de contenir 15 caractères au maximum. L'indexation du tableau commence à partir de 0, il stockera donc les caractères d'une position 0-14. Le compilateur C ajoute automatiquement un caractère NULL '\0' au tableau de caractères créé.

Étudions l'initialisation de String en C. L'exemple suivant montre l'initialisation de Strings en C,

char first_name[15] = "ANTHONY";
char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declaration
char string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */
char string2 [ ] = "world";  /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */
char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/

Dans string3, le caractère NULL doit être ajouté explicitement et les caractères sont placés entre guillemets simples.

'C' nous permet également d'initialiser une variable de chaîne sans définir la taille du tableau de caractères. Cela peut être fait de la manière suivante,

char first_name[ ] = "NATHAN";

Le nom de Strings en C agit comme un pointeur car il s'agit essentiellement d'un tableau.

Saisie de chaîne :lire une chaîne

Lors de l'écriture de programmes interactifs qui demandent une entrée à l'utilisateur, C fournit les fonctions scanf(), gets() et fgets() pour trouver une ligne de texte saisie par l'utilisateur.

Lorsque nous utilisons scanf() pour lire, nous utilisons le spécificateur de format "%s" sans utiliser le "&" pour accéder à l'adresse de la variable car un nom de tableau agit comme un pointeur. Par exemple :

#include <stdio.h>
int main() {
char name[10];
int age;
printf("Enter your first name and age: \n");
scanf("%s %d", name, &age); 
printf("You entered: %s %d",name,age);
}

Sortie :

Enter your first name and age:
John_Smith 48

Le problème avec la fonction scanf est qu'elle ne lit jamais des chaînes entières en C. Elle interrompt le processus de lecture dès qu'un espace, un saut de page, une tabulation verticale, une nouvelle ligne ou un retour chariot se produit. Supposons que nous donnions une entrée en tant que "tutoriels Guru99", la fonction scanf ne lira jamais une chaîne entière car un caractère d'espacement apparaît entre les deux noms. La fonction scanf ne lira que Guru99.

Pour lire une chaîne contenant des espaces, nous utilisons la fonction gets(). Gets ignore les espaces blancs. Il arrête la lecture lorsqu'une nouvelle ligne est atteinte (la touche Entrée est enfoncée). Par exemple :

#include <stdio.h>
int main() {
char full_name[25];
printf("Enter your full name: ");
gets(full_name);
printf("My full name is %s ",full_name);
return 0;
}

Sortie :

Enter your full name: Dennis Ritchie
My full name is Dennis Ritchie

Une autre alternative plus sûre à gets() est la fonction fgets() qui lit un nombre spécifié de caractères. Par exemple :

#include <stdio.h>
int main() {
char name[10];
printf("Enter your  name plz: ");
fgets(name, 10, stdin);
printf("My name is %s ",name);
return 0;}

Sortie :

Enter your name plz: Carlos
My name is Carlos

Les arguments fgets() sont :

Sortie de chaîne :imprimer/afficher une chaîne

La fonction printf standard est utilisée pour imprimer ou afficher des chaînes en C sur un périphérique de sortie. Le spécificateur de format utilisé est %s

Exemple,

printf("%s", name);

La sortie de chaîne est effectuée avec les fonctions fputs() et printf().

fonction fputs()

Le fputs() a besoin du nom de la chaîne et d'un pointeur vers l'endroit où vous souhaitez afficher le texte. Nous utilisons stdout qui fait référence à la sortie standard afin d'imprimer à l'écran. Par exemple :

#include <stdio.h>
int main()
{char town[40];
  printf("Enter your town: ");
  gets(town);
  fputs(town, stdout);
  return 0;}

Sortie :

Enter your town: New York
New York

met la fonction

La fonction puts est utilisée pour imprimer une chaîne en C sur un périphérique de sortie et ramener le curseur à la première position. Une fonction met peut être utilisée de la manière suivante,

#include <stdio.h>
int main() {
char name[15];
gets(name);        //reads a string
puts(name);        //displays a string
return 0;}

La syntaxe de cette fonction est relativement simple par rapport aux autres fonctions.

La bibliothèque de chaînes

La bibliothèque standard "C" fournit diverses fonctions pour manipuler les chaînes dans un programme. Ces fonctions sont également appelées gestionnaires de chaînes. Tous ces gestionnaires sont présents dans le fichier d'en-tête .

Fonction Objectif strlen() Cette fonction est utilisée pour trouver la longueur d'une chaîne. Il renvoie le nombre de caractères présents dans une chaîne à l'exclusion du caractère NULL.strcat(str1, str2) Cette fonction est utilisée pour combiner deux chaînes ensemble pour former une seule chaîne. Il ajoute ou concatène str2 à la fin de str1 et renvoie un pointeur vers str1.strcmp(str1, str2) Cette fonction est utilisée pour comparer deux chaînes entre elles. Elle renvoie 0 si str1 est égal à str2, inférieur à 0 si str1 str2.

Considérons le programme ci-dessous qui illustre les fonctions de la bibliothèque de chaînes :

#include <stdio.h>
#include <string.h>
int main () {
//string initialization
char string1[15]="Hello";
char string2[15]=" World!";
char string3[15];
int val;

//string comparison
val= strcmp(string1,string2);
if(val==0){
    printf("Strings are equal\n");
}
else{
    printf("Strings are not equal\n");
}

//string concatenation
printf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world!

//string length
printf("\nLength of first string:%d",strlen(string1));
printf("\nLength of second string:%d",strlen(string2));

//string copy
printf("\nCopied string is:%s\n",strcpy(string3,string1));  //string1 is copied into string3
return 0;
}

Sortie :

Strings are not equal
Concatenated string:Hello World!
Length of first string:12
Length of second string:7
Copied string is:Hello World!

Les autres fonctions importantes de la bibliothèque sont :

  • strncmp(str1, str2, n) :renvoie 0 si les n premiers caractères de str1 sont égaux aux n premiers caractères de str2, inférieur à 0 si str1 str2.
  • strncpy(str1, str2, n) Cette fonction est utilisée pour copier une chaîne à partir d'une autre chaîne. Copie les n premiers caractères de str2 vers str1
  • strchr(str1, c) :il renvoie un pointeur sur la première occurrence de char c dans str1, ou NULL si le caractère n'est pas trouvé.
  • strrchr(str1, c) :il recherche str1 en sens inverse et renvoie un pointeur sur la position du caractère c dans str1, ou NULL si le caractère n'est pas trouvé.
  • strstr(str1, str2) :renvoie un pointeur vers la première occurrence de str2 dans str1, ou NULL si str2 n'est pas trouvé.
  • strncat(str1, str2, n) Ajoute (concatène) les n premiers caractères de str2 à la fin de str1 et renvoie un pointeur vers str1.
  • strlwr() :pour convertir une chaîne en minuscule
  • strupr() :pour convertir une chaîne en majuscule
  • strrev() :pour inverser la chaîne

Convertir une chaîne en nombre

En programmation C, nous pouvons convertir une chaîne de caractères numériques en une valeur numérique pour éviter une erreur d'exécution. La bibliothèque stdio.h contient les fonctions suivantes pour convertir une chaîne en nombre :

  • int atoi(str) Représente ASCII en nombre entier ; il convertit str en la valeur int équivalente. 0 est renvoyé si le premier caractère n'est pas un nombre ou si aucun nombre n'est rencontré.
  • double atof(str) Indique que l'ASCII doit flotter, il convertit str en la valeur double équivalente. 0.0 est renvoyé si le premier caractère n'est pas un nombre ou si aucun nombre n'est rencontré.
  • long int atol(str) Représente ASCII en long int, Convertit str en la valeur entière longue équivalente. 0 est renvoyé si le premier caractère n'est pas un nombre ou si aucun nombre n'est rencontré.

Le programme suivant illustre la fonction atoi() :

#include <stdio.h>
int main()
{char *string_id[10];
  int ID;
  printf("Enter a number: ");
  gets(string_id);
  ID = atoi(string_id);
   printf("you enter %d  ",ID);
  return 0;}

Sortie :

Enter a number: 221348
you enter 221348
  • Une déclaration de pointeur de chaîne telle que char *string ="language" est une constante et ne peut pas être modifiée.

Résumé

  • Une chaîne est une séquence de caractères stockée dans un tableau de caractères.
  • Une chaîne est un texte entouré de guillemets doubles.
  • Un caractère tel que "d" n'est pas une chaîne et il est indiqué par des guillemets simples.
  • ‘C’ fournit des fonctions de bibliothèque standard pour manipuler des chaînes dans un programme. Les manipulateurs de chaînes sont stockés dans le fichier d'en-tête .
  • Une chaîne doit être déclarée ou initialisée avant d'être utilisée dans un programme.
  • Il existe différentes fonctions de chaîne d'entrée et de sortie, chacune d'entre elles a ses caractéristiques.
  • N'oubliez pas d'inclure la bibliothèque de chaînes pour travailler avec ses fonctions
  • Nous pouvons convertir une chaîne en nombre via atoi(), atof() et atol() qui sont très utiles pour les processus de codage et de décodage.
  • Nous pouvons manipuler différentes chaînes en définissant un tableau de chaînes en C.

Langue C

  1. Chaînes Java
  2. Chaînes d'énumération Java
  3. Comment créer une liste de chaînes en VHDL
  4. Tableaux en C++ | Déclarer | Initialiser | Pointeur vers des exemples de tableaux
  5. Chaînes C++ :strcpy(), strcat(), strlen(), strcmp() EXEMPLES
  6. Fonction realloc() dans la bibliothèque C :comment l'utiliser ? Syntaxe et exemple
  7. Fonction free() dans la bibliothèque C :comment l'utiliser ? Apprendre avec l'exemple
  8. Méthode String Length () en Java:comment trouver avec l'exemple
  9. Chaînes Python :Remplacer, Joindre, Diviser, Inverser, Majuscules et Minuscules