Latest web development tutorials

la chaîne C de

C ++ fournit une représentation de chaîne des deux types suivants:

  • chaînes de style C
  • le type de classe de chaîne C de introduit

chaînes de style C

chaînes de style C origine dans le langage C et C ++ continue d'être pris en charge. Chaîne est effectivement utilisé caractèrenul tableau '\ 0' une dimension de caractères terminés.Par conséquent, une chaîne terminée par zéro qui contient les caractères de la chaîne.

Les instructions suivantes créent et initialiser un "Bonjour" string. Depuis la fin de la matrice pour stocker le caractère nul, de sorte que la taille de la matrice de caractères que le mot "Bonjour" est supérieur à un nombre de caractères.

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

règles tableau d'initialisation Sur la base, vous pouvez écrire la déclaration ci-dessus la déclaration suivante:

char greeting[] = "Hello";

Ce qui suit est une chaîne de C / C ++ défini dans la mémoire, il a dit:

C / C ++ représentation de chaîne

En fait, vous n'avez pas besoin le caractèrenulà la fin de la constante de chaîne. Lorsque tableau compilateur l'initialisation de la C, automatiquement '\ 0' sur la fin de la chaîne. Essayons la chaîne de sortie ci-dessus:

#include <iostream>

using namespace std;

int main ()
{
   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "Greeting message: ";
   cout << greeting << endl;

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Greeting message: Hello

C ++ a beaucoup de fonctions pour manipuler la chaîne terminée par zéro de: prend en charge un large éventail de fonctions qui manipulent des chaînes à zéro terminal:

序号函数 & 目的
1strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
2strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。
3strlen(s1);
返回字符串 s1 的长度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
5strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

L'exemple suivant utilise certaines des fonctions ci-dessus:

#include <iostream>
#include <cstring>

using namespace std;

int main ()
{
   char str1[10] = "Hello";
   char str2[10] = "World";
   char str3[10];
   int  len ;

   // 复制 str1 到 str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   // 连接 str1 和 str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   // 连接后,str1 的总长度
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

Dans la classe String de C

bibliothèque standard de C fournit un type de classede chaîne prend en charge toutes les opérations décrites ci - dessus, et ajoute également de nombreuses autres fonctionnalités.Nous allons apprendre la classe de la bibliothèque standard C de maintenant, nous allons jeter un regard sur les exemples suivants:

Maintenant, vous ne pouvez pas encore avoir une compréhension approfondie de cet exemple, parce que jusqu'à présent, nous avons des classes et des objets ne sont pas abordées. Après maintenant vous pouvez regarder juste rugueux à cet exemple, et ainsi comprendre les concepts orientés objets reviennent autour et comprendre cette instance.

#include <iostream>
#include <string>

using namespace std;

int main ()
{
   string str1 = "Hello";
   string str2 = "World";
   string str3;
   int  len ;

   // 复制 str1 到 str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;

   // 连接 str1 和 str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;

   // 连接后,str3 的总长度
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10