Résumé de l'utilisation des objets de classe chaîne en C++

php是最好的语言
Libérer: 2018-08-08 10:59:10
original
1953 Les gens l'ont consulté

Par rapport au langage C, C++ a considérablement amélioré sa prise en charge des chaînes. En plus d'utiliser des chaînes de style C, vous pouvez également utiliser la classe de type de données intégrée. La classe string est particulièrement pratique pour traiter les chaînes. encapsulation de fonction. , comptons les fonctions de la classe string

Tout d'abord, si vous souhaitez appeler la classe string, incluez d'abord son fichier d'en-tête #include <string>

string s1;//变量s1只是定义但没有初始化,所以其默认值为""即空字符串string s2="Hello World!";//变量s2在定义时同时被初始化/*string类的变量可以相互之间直接赋值,不需要像C语言一样,使用strcpy()函数一个字符一个字符的去赋值*///例如string s3=s2;//此时s3的内容和s2一样也是Hello World!//如果需要定义一个由很多相同字符组成的字符串时,还有另外的简便写法string s4(int n,char c);//s4是被初始化为由n的字符c组成的字符串
Copier après la connexion

Concernant la recherche de la longueur d'une chaîne, en C Dans le langage, on peut utiliser la fonction strlen() pour la trouver, et en C++ on peut aussi utiliser strlen(s3) cette méthode peut trouver la longueur réelle de la chaîne s3 ; , mais comme il existe une différence essentielle entre la classe string en C++ et le langage C, nous généralement, la fonction string.length() est appelée pour trouver la longueur d'une chaîne

int len=0;len=string.length(s3);
cout<<"s3字符串的长度为"<<len<<endl;
Copier après la connexion

Comme nous l'avons mentionné ci-dessus, si vous attribuez une chaîne de type chaîne à une autre chaîne de type chaîne, il vous suffit d'attribuer la valeur directement. D'accord, mais que dois-je faire si la classe de chaîne est affectée à la classe char* ou si la classe char* l'est. assigné à la classe de chaîne ? Bien sûr, il ne peut pas être attribué directement. Il suffit de regarder le code

//string类赋值给string类string s1="hello world";string s2;
s2=s1;//string类赋值给char*类string s1="hello world";char str[20]={0};
strcpy_s(str,s1.c_str());//char*类赋值给string类char str[20]="hello world";string s2;
s2=str;
Copier après la connexion

En même temps, les variables de type chaîne peuvent également utiliser des opérations sur les tableaux de caractères pour modifier l'une des variables qu'elles contiennent, telles que <. 🎜>

#include <iostream>#include <string>string s1="this is my house";int i;//如果我们现在想改变里面某一个字符,可以直接将s1当成数组,找到对应的下标来改变i=6;
s[i]=&#39;t&#39;;//这样就可以将第6个字符改成t了
Copier après la connexion
Avec la classe string, nous pouvons utiliser l'opérateur "+" ou "+=" pour épisser directement des chaînes, ce qui est très pratique. Nous n'avons plus besoin d'utiliser strcat(), strcpy(), malloc() et d'autres fonctions en langage C. Pour épisser des chaînes, vous n'avez plus à vous soucier du manque d'espace et du débordement. Lorsque vous utilisez "+" pour épisser des chaînes, les deux côtés de l'opérateur peuvent être des chaînes de caractères ou une chaîne de caractères et. un caractère de style C. Une chaîne peut également être une chaîne de caractères et un caractère char.

Affectation de la classe de chaîne

string &operator=(const string &s);//把字符串s赋给当前字符串 string &assign(const char *s);//用c类型字符串s赋值string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值string &assign(const string &s);//把字符串s赋给当前字符串string &assign(int n,char c);//用n个字符c赋值给当前字符串string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串
Copier après la connexion
Connexion de chaîne

string &operator+=(const string &s);//把字符串s连接到当前字符串的结尾 string &append(const char *s);//把c类型字符串s连接到当前字符串结尾string &append(const char *s,int n);//把c类型字符串s的前n个字符连接到当前字符串结尾string &append(const string &s);    //同operator+=()string &append(const string &s,int pos,int n);//把字符串s中从pos开始的n个字符连接到当前字符串的结尾string &append(int n,char c);        //在当前字符串结尾添加n个字符cstring &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾
Copier après la connexion
Sous-chaîne de chaîne

string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串

void swap(string &s2);    //交换当前字符串与s2的值
Copier après la connexion
Recherche de chaîne

rfind() est très similaire à find(). Elle recherche également des sous-chaînes dans une chaîne. La différence est que la fonction find() commence à partir du deuxième paramètre et recherche en arrière, tandis que la fonction rfind() monte. au deuxième paramètre est recherché. Si la sous-chaîne n'est pas trouvée à l'indice spécifié par le deuxième paramètre, une valeur infinie 4294967295 est renvoyée

int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置int rfind(const char *s, int pos = npos) const;int rfind(const char *s, int pos, int n = npos) const;int rfind(const string &s,int pos = npos) const;//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
Copier après la connexion
Fonction d'insertion de la classe de chaîne :

.
string &insert(int p0, const char *s);string &insert(int p0, const char *s, int n);string &insert(int p0,const string &s);string &insert(int p0,const string &s, int pos, int n);//前4个函数在p0位置插入字符串s中pos开始的前n个字符string &insert(int p0, int n, char c);//此函数在p0处插入n个字符citerator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置void insert(iterator it, const_iterator first, const_iterator last);//在it处插入[first,last)之间的字符void insert(iterator it, int n, char c);//在it处插入n个字符c
Copier après la connexion
À propos de l'utilisation des objets de classe chaîne en C++, j'ai parlé aujourd'hui de quelques bases.

Recommandations associées :


Un résumé de l'utilisation de la classe string en C++ standard

Un résumé des références dans c++

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
c++
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