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组成的字符串
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;
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;
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]='t';//这样就可以将第6个字符改成t了
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迭代器之间的部分赋给字符串
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之间的部分连接到当前字符串的结尾
string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
void swap(string &s2); //交换当前字符串与s2的值
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的值
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
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!