devstory

Le Tutoriel de C/C++ string

  1. C-Style String
  2. C++ Style String

1. C-Style String

String
En C++, il existe deux types de chaînes (string), des chaînes de style C (C-style string) et des chaînes de style C++ (C++-Style string).
Les chaînes C-Style sont vraiment des tableaux, mais il existe des fonctions différentes qui sont utilisées pour les chaînes, comme l'ajout de chaînes, la recherche de la longueur des chaînes et aussi pour vérifier si les chaînes correspondent à l'expression régulière (regular expression).
La définition d'une chaîne serait tout ce qui contient plus d'un caractère enfilé ensemble. Par exemple, "this" est une chaîne. Cependant, les caractères uniques ne seront pas des chaînes, bien qu'ils puissent être utilisés comme des chaînes.
String sont des tableaux de lettres. Les chaînes littérales sont des mots entourés de guillemets doubles (string literals)
// Declare a C-Style String.
char mystring[] = { 't', 'h', 'i', 's', ' ', 'i', 's' ,' ', 't', 'e', 'x', 't', '\0'};

// This is a string literal.
char mystring[] = "this is text'';
StringLiteralExample.cpp
#include <stdio.h>

int main() {

   // Declare a String literal.
   char s1[] = "What is this";

   // Print out the string
   printf("Your string = %s", s1);

   fflush(stdout);

   return 0;
}
Résultats de l'exécution:
  • char mystr[] = "what is this";
La string ci-dessus a 12 caractères, pour déclarer cette string en C, vous devez déclarer un tableau de caractères avec 13 éléments, n'oubliez pas que le dernier élément dans le tableau est un caractère null (le code est '\ 0'), cela signifie que c'est la fin de string. Le dernier caractère ne signifie pas dans votre chaîne, mais il est nécessaire que les programmes C, tels que le pointeur (pointer) indique vers un emplacement de la chaîne, se tiennent au premier caractère et que vous souhaitez récupérer le contenu réel de string, le programme parcourera le L'élément suivant jusqu'à ce qu'il rencontre le caractère null.
Dans le cas où vous disposez d'un tableau de caractères et incluent un caractère null qui n'est pas à la fin du tableau, ou plus de caractères null dans le tableau. Mais C ne verra que ce tableau contient une string, y compris le premier caractère du premier caractère null dans le tableau.
L'exemple suivant déclare un tableau de caractères qui comporte 100 éléments utilisés pour stocker le text en tant qu'entrée utilisateur du clavier. Dans cette situation, les caractères de la chaîne d'entrée seront attribués aux premiers éléments du tableau et ensuite au caractère null. Et l'élément suivant ne peut pas être assigné
StringFromKeyboardExample.cpp
#include <stdio.h>

int main() {

   // Declare an array of characters with 100 elements,
   // used to store user input string from the keyboard.
   char s1[100];

   printf("Enter your string: \n");
   fflush(stdout);

   // scanf function wait user input from the keyboard.
   // (Press enter to end).
   // It will scan to get a string and assigned to the variable s1.
   // (%s: scan a string does not contain spaces)
   scanf("%s", s1);

   printf("Your string = %s", s1);

   fflush(stdout);

   return 0;
}
L'exécution de l'exemple:
Des fonctions pour C-style String
C fournit plusieurs fonctions pour fonctionner avec String. Il se trouve dans la bibliothèque standard <string.h>. Ci-dessous, je liste certaines fonctions communes de C relatives à string (pas toutes).
Certaines fonctions pour String.
Le nom de la fonction
Description
size_t strlen(const char *str)
Calcule la longueur de la chaîne str mais ne comprend pas le caractère nul de terminaison
char *strcpy(char *dest, const char *src)
Copie la string indiquée par src à dest. Ceci renvoie un pointeur vers la destination dest.
int strcmp(const char *str1, const char *str2)
Compare la chaîne données par le paramètre str1 et str2.
Si la valeur de retour > 0 alors str1 > str2, sinon renvoie la valeur = 0 alors str1 identique à str2, sinon str1 <str2.
char *strcat(char *dest, const char *src)
Ajoute la chaîne indiquée par src à la fin de la chaîne pointue par dest. Cette fonction renvoie un pointeur vers le résultat de la chaîne de dest.
char *strchr(const char *str, int c)
Recherche la première occurrence du caractère c (un caractère non signé) dans la chaîne indiquée par l'argument str.
StringFunctionsExample.cpp
#include <stdio.h>

// Using string library.
#include <string.h>

int main() {

   // Declare a string literal.
   char s1[] = "This is ";

   // Declare a C-Style string
   // (With null character at the end).
   char s2[] = { 't', 'e', 'x', 't', '\0' };

   // Function: size_t strlen(const char *str)
   // strlen funtion return length of the string.
   // site_t: is unsigned integer data type.
   size_t len1 = strlen(s1);
   size_t len2 = strlen(s2);

   printf("Length of s1 = %d \n", len1);
   printf("Length of s2 = %d \n", len2);

   // Declare an array with 100 elements.
   char mystr[100];

   // Function: char *strcpy(char *dest, const char *src)
   // copy s1 to mystr.
   strcpy(mystr, s1);

   // Function: char *strcat(char *dest, const char *src)
   // Using strcat function to concatenate two strings
   strcat(mystr, s2);

   // Print out content of mystr.
   printf("Your string = %s", mystr);

   fflush(stdout);

   return 0;

}
L'exécution de l'exemple:

2. C++ Style String

C++ vous fournit la classe string, qui vous aide à travailler plus facilement avec la chaîne. Les méthodes que la classe de string fournit toujours un support pour travailler avec la chaîne C-Style.
Déclarer la bibliothèque de string
Pour utiliser string, vous devez déclarer #include <string> les directives du préprocesseur (Preprocessor Directives) et déclarer l'utilisation de l'espace de noms std.
// Declare Preprocessor Directives

#include <string>

// Declare to use the namespace std.

using namespace std;
Déclarer une string:
// Declare a string object.

string mystring = "Hello World";

// If you do not declare using namespace std.
// You must use the full name:

std::string mystring = "Hello World";
Les méthodes de la String
Voici les méthodes de liste de String.