Maison >développement back-end >Tutoriel C#.Net >Utiliser des chaînes en C

Utiliser des chaînes en C

黄舟
黄舟original
2017-02-06 13:35:041466parcourir

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>


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;

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;


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;


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;


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;


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;


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;


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;


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;  
   }


(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;


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;  
    }


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

// 输入输出stream  
  cout << "请输入一个字符串"<<endl;  
    string stringInput;  
    cin >> stringInput;  
    cout << "stringInput = " << stringInput << endl;


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;


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;


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;


(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;


(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;
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) !


Déclaration:
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