Utiliser des chaînes en C

黄舟
Libérer: 2017-02-06 13:35:04
original
1441 Les gens l'ont consulté

Lorsque nous utiliserons pour la première fois le langage C pour traiter des chaînes, cela sera très gênant. Il y a un manque de fonctions de traitement de chaîne correspondantes dans le langage C. Si nous voulons implémenter une certaine fonction de chaîne, nous ne pouvons le faire que nous-mêmes. Mais quand on arrive en C, le traitement des chaînes devient extrêmement simple. Aujourd'hui, nous allons découvrir les fonctions de traitement de chaînes les plus fréquemment utilisées en C. Un exemple de code est téléchargé sur : https://github.com/chenyufeng1991/CppString.

Introduisez d'abord le fichier d'en-tête de chaîne en C :

#include <string>
Copier après la connexion


Veuillez noter que le fichier d'en-tête ici n'a pas .h, sinon il le fera est devenu un fichier d'en-tête en langage C.

(1) Créer une chaîne


Il existe plusieurs méthodes de construction pour créer une chaîne. La méthode la plus typique consiste à utiliser le constructeur de copie, <🎜. >

string str("chenyufeng",3);  
cout << str << endl;
Copier après la connexion

cout copie les 3 derniers caractères au début de la chaîne d'origine. Le résultat de l'impression est che.

string str2("chenyufeng",2,3);  
cout << str2 << endl;
Copier après la connexion


cout copie les 3 derniers caractères depuis le début de la chaîne d'origine index=2. Le résultat imprimé est eny.

// = :字符串赋值  
str2 = "Robert";  
cout << str2 << endl;
Copier après la connexion


Vous pouvez également attribuer une valeur de chaîne à une variable en utilisant l'affectation directe, en utilisant "=". Le résultat imprimé est Robert.


(2) swap : échanger les valeurs​​des deux chaînes

// swap:交换两个字符串的值  
  string string1 = "chen";  
   string string2 = "yufeng";  
   swap(string1, string2);  
   cout << "string1 = " << string1 << ";string2 = " << string2 << endl;
Copier après la connexion


Le résultat imprimé a été échangé avec la valeur de chaîne d'origine.


(3), ajouter : ajouter une chaîne

// += ,append:在尾部添加字符串  
   string stringOrigin = "chen";  
    string stringAppend = "yufeng";  
    stringOrigin = stringOrigin + stringAppend;  
    cout << "stringOrigin = " << stringOrigin << endl;  
  
    stringOrigin.append("_OK");  
    cout << "stringOriginAppend = " << stringOrigin << endl;
Copier après la connexion


Notez que l'ajout d'une opération de chaîne modifiera le chaîne originale. Vous pouvez directement utiliser le symbole pour ajouter des chaînes, ce qui est très pratique.


(4) insérer : Insérer une chaîne à la position spécifiée

// insert:在指定position插入字符串  
  string stringInsertOrigin = "chenyufeng";  
    stringInsertOrigin.insert(3, "__");  
    cout << "stringInsertOrigin = " << stringInsertOrigin << endl;
Copier après la connexion


Le code ci-dessus peut être trouvé dans indx= Insérez __underscore en position 3, et le résultat imprimé est che__nyufeng.


(5) effacer, effacer pour supprimer la chaîne

// erase: 删除字符 
  string stringEraseOrigin = "chenyufeng";  
   stringEraseOrigin.erase();  
   cout << "stringEraseOrigin = " << stringEraseOrigin << endl;  
  
  
   // clear :删除全部字符  
  string stringClearOrigin = "chenyufeng";  
   stringClearOrigin.clear();  
   cout << "stringClearOrigin = " << stringClearOrigin << endl;
Copier après la connexion


Les opérations ci-dessus effacent en fait la chaîne.


(6) remplacer : remplacer la chaîne

// replace: 替换字符串,某个pos位置开始的size个字符替换成后面的“”字符串  
   string stringReplaceOrigin = "chenyufeng";  
    stringReplaceOrigin.replace(3, 2, "66");  
    cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;
Copier après la connexion


Le code ci-dessus modifie la chaîne de index=3 Remplacez les 2 premiers caractères par "66", et le résultat imprimé est che66ufeng.


(7) ==,, = : comparer les tailles de chaînes


Lors de l'utilisation de cet opérateur pour opérer sur des chaînes en C, la surcharge d'opérateur est en fait utilisée. La comparaison de la taille des chaînes est basée sur l'ordre des lettres du dictionnaire ou sur la valeur du code ASCII. Arrêtez-vous jusqu'à ce que différentes lettres des deux chaînes soient comparées ou que le dernier chiffre d'une certaine chaîne soit comparé.

// ==,<,>,<=,>=:比较字符串  
  string stringLeft = "zhen";  
   string stringRight = "yufeng";  
   if (stringLeft == stringRight)  
   {  
       cout << "equal" << endl;  
   }  
  
   if (stringLeft != stringRight)  
   {  
       cout << "not equal" << endl;  
   }  
  
   if (stringLeft < stringRight)  
   {  
       cout << "stringLeft < stringRight" << endl;  
   }  
  
   if (stringLeft > stringRight)  
   {  
       cout << "stringLeft > stringRight" << endl;  
   }
Copier après la connexion


(8) taille, longueur : Calculez la longueur de la chaîne


La longueur de la chaîne calculée ici Différent à partir du langage C, la fin n'est pas incluse et la longueur réelle est calculée.

// size(), length():计算字符串长度  
   string stringCount = "chenyufeng";  
    cout << "stringSize = " << stringCount.size() << endl;  
    cout << "stringLength = " << stringCount.length() << endl;
Copier après la connexion


Les résultats d'impression ci-dessus sont tous 10.


(9) vide : Déterminez si la chaîne is Est vide

// empty():判断字符串是否为空  
  string stringIsEmpty = "";  
    string stringNotEmpty = "chen";  
    if (stringIsEmpty.empty())  
    {  
        cout << "stringIsEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringIsEmpty != empty" << endl;  
    }  
  
    if (stringNotEmpty.empty())  
    {  
        cout << "stringNotEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringNotEmpty != empty" << endl;  
    }
Copier après la connexion


(10) Le flux d'entrée et de sortie de la chaîne

// 输入输出stream  
  cout << "请输入一个字符串"<<endl;  
    string stringInput;  
    cin >> stringInput;  
    cout << "stringInput = " << stringInput << endl;
Copier après la connexion


chaîne Les flux d'entrée et de sortie peuvent également être utilisés de la même manière que les autres types de données C. Le flux d'entrée peut être terminé à l'aide de la touche Entrée.


(11) max_size : La capacité maximale de la chaîne.

// max_size:  
  string stringMaxSize;  
    cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;
Copier après la connexion


Le résultat imprimé est : 18446744073709551599. Indique que la chaîne peut contenir autant de caractères.


(12)[], à : accès et modification des éléments

// [],at() :元素存取  
  string stringAt = "chenyufeng";  
    cout << "stringAt[3] = " <<stringAt[3] << endl;  
    cout << "stringAt.at(3) = " << stringAt.at(3) << endl;  
  
    stringAt[3] = &#39;6&#39;;  
    stringAt.at(5) = &#39;9&#39;;  
    cout << "stringAt = " << stringAt << endl;
Copier après la connexion


Les chaînes peuvent être combinées avec Les opérations sont les mêmes que pour les tableaux, en utilisant des indices pour l'accès, et la chaîne d'origine peut être modifiée.


(13) comparer : Comparaison de chaînes, renvoie 0, 1, -1.

// compare()  
   string stringCompare = "chenyufeng";  
    int aaa = stringCompare.compare("chen"); // > 0  
    int bbb = stringCompare.compare("chenyufeng"); // == 0  
    int ccc = stringCompare.compare("done"); // < 0  
    cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;
Copier après la connexion


(14) substr : Obtenir la sous-chaîne

// substr  
   string stringSubstr = "chenyufeng";  
   // 从索引为4开始的3个字符 
    cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;  
  
   // 从索引为4开始的所有字符  
  cout << "stringSubstr.substr(4) = " <<stringSubstr.substr(4) << endl;  
  
   // 整个字符  
  cout << "stringSubstr.substr() = " <<stringSubstr.substr() << endl;
Copier après la connexion


(15) find : Rechercher un caractère

// find   
  string stringFind = "chenyufeng";  
    stringFind.find(&#39;n&#39;);  
    cout << "stringFind.find(&#39;n&#39;) = " << stringFind.find(&#39;n&#39;) << endl;  
  
    cout << "stringFind.find_first_of(&#39;e&#39;) = " << stringFind.find_first_of(&#39;e&#39;) << endl;  
      
    cout << "stringFind.find_last_of(&#39;e&#39;) = " << stringFind.find_last_of(&#39;e&#39;) << endl;
Copier après la connexion
La fonction de recherche par défaut renvoie l'index de la première occurrence d'un caractère. find_first_of et find_last_of sont respectivement les index de la première et de la dernière occurrence d'un certain caractère.

Ce qui précède est le contenu de l'utilisation des chaînes en C. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!