C++_string类常用函数
C++ string类常用函数#include<string>using namespace std;构造函数:string(const char *s); //用c字符串s初始化string(int n, char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。
当构造的string太长而无法表达时会抛出length_error异常字符操作:const char &operator[](int n)const;const char &at(int n)const;char &operator[](int n);char &at(int n);注:operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const; //返回一个非null终止的c字符数组const char *c_str()const; //返回一个以null终止的c字符串int copy(char *s, int n, int pos = 0) const; //把当前串中以pos开始的n个字符拷贝到以s为//起始位置的字符数组中,返回实际拷贝的数目特性描述:int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)int max_size()const; //返回string对象中可存放的最大字符串的长度int size()const; //返回当前字符串的大小int length()const; //返回当前字符串的长度bool empty()const; //当前字符串是否为空void resize(int len,char c); //把字符串当前大小置为len,并用字符c填充不足的部分输入输出操作:string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符分开。
赋值: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赋值给当前字符串//把字符串s中从start开始的n个字符赋给当前字符串string &assign(const string &s,int start,int n);//把first和last迭代器之间的部分赋给字符串string &assign(const_iterator first,const_itertor 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+=()//把字符串s中从pos开始的n个字符连接到当前字符串的结尾string &append(const string &s,int pos,int n);string &append(int n,char c); //在当前字符串结尾添加n个字符c//把迭代器first和last之间的部分连接到当前字符串的结尾string &append(const_iterator first,const_iterator last); 比较:bool operator==(const string &s1,const string &s2)const; //比较两个字符串是否相等注:运算符">","<",">=","<=","!="均被重载用于字符串的比较;int compare(const string &s) const; //比较当前字符串和s的大小//比较当前字符串从pos开始的n个字符组成的字符串与s的大小int compare(int pos, int n,const string &s)const;//比较当前串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小int compare(int pos, int n,const string &s,int pos2,int n2)const;int compare(const char *s) const;int compare(int pos, int n,const char *s) const;int compare(int pos, int n,const char *s, int pos2) const; 注:compare函数在>时返回1,<时返回-1,==时返回0子串:string substr(int pos = 0,int n = npos) const; //返回pos开始的n个字符组成的字符串交换:void swap(string &s2); //交换当前字符串与s2的值查找:①从pos开始查找s在当前串中的位置,成功时返回所在位置,失败返回string::npos的值int find(char c, int pos = 0) const; //从pos开始查找字符c在当前字符串的位置int find(const char *s, int pos = 0) const; //从pos开始查找字符串s在当前串中的位置//从pos开始查找字符串s中前n个字符在当前串中的位置int find(const char *s, int pos, int n) const;int find(const string &s, int pos = 0) const;②从pos开始从后向前查找s在当前串中的位置,成功返回所在位置,失败返回string::npos的值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的某字符出现的位置,成功时返回所在位置,查找失败返回string::nposint find_first_of(char c, int pos = 0) const; //从pos开始查找字符c第一次出现的位置int find_first_of(const char *s, int pos = 0) const;int find_first_of(const char *s, int pos, int n) const;int find_first_of(const string &s,int pos = 0) const;④从当前串中查找第一个不在串s中的出现的字符位置,失败返回string::nposint find_first_not_of(char c, int pos = 0) const;int find_first_not_of(const char *s, int pos = 0) const; int find_first_not_of(const char *s, int pos,int n) const; int find_first_not_of(const string &s,int pos = 0) const;⑤从后向前查找最后一个与s中的某字符匹配的字符,成功返回它的位置,失败返回string::nopsint find_last_of(char c, int pos = npos) const;int find_last_of(const char *s, int pos = npos) const;int find_last_of(const char *s, int pos, int n = npos) const; int find_last_of(const string &s,int pos = npos) const;int find_last_not_of(char c, int pos = npos) const;int find_last_not_of(const char *s, int pos = npos) const; int find_last_not_of(const char *s, int pos, int n) const; int find_last_not_of(const string &s,int pos = npos) const;替换:string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入s//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符string &replace(int p0, int n0,const char *s, int n);//删除从p0开始的n0个字符,然后在p0处插入sstring &replace(int p0, int n0,const string &s);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符string &replace(int p0, int n0,const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入n个字符cstring &replace(int p0, int n0,int n, char c);//把[first0,last0)之间的部分替换为字符串sstring &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之间的部分替换为s的前n个字符string &replace(iterator first0, iterator last0,const char *s, int n);//把[first0,last0)之间的部分替换为串sstring &replace(iterator first0, iterator last0,const string &s);//把[first0,last0)之间的部分替换为n个字符cstring &replace(iterator first0, iterator last0,int n, char c);string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last); //把[first0,last0)之间的部分替换成[first,last)之间的字符串插入:①在p0位置插入字符串s中pos开始的前n个字符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); string &insert(int p0, int n, char c); //此函数在p0处插入n个字符citerator insert(iterator it, char c); //在it处插入字符c,返回插入后迭代器的位置//在it处插入[first,last)之间的字符void insert(iterator it, const_iterator first, const_iterator last);void insert(iterator it, int n, char c); //在it处插入n个字符c删除://删除[first,last)之间的所有字符,返回删除后迭代器的位置iterator erase(iterator first, iterator last);iterator erase(iterator it); //删除it指向的字符,返回删除后迭代器的位置string &erase(int pos = 0, int n = npos); //删除pos开始的n 个字符,返回修改后的字符串迭代器:string类提供了向前和向后遍历的迭代器iterator,不检查范围。
CPPstring类常用函数
C++string类常用函数string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。
当构造的string太长而无法表达时会抛出length_error异常string类的字符操作:const char &operator[](int n)const;const char &at(int n)const;char &operator[](int n);char &at(int n);operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const;//返回一个非null终止的c字符数组const char *c_str()const;//返回一个以null终止的c字符串int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目string的特性描述:int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)int max_size()const; //返回string对象中可存放的最大字符串的长度int size()const; //返回当前字符串的大小int length()const; //返回当前字符串的长度bool empty()const; //当前字符串是否为空void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分string类的输入输出操作:string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
c语言string函数
c语言string函数
标准 C 语言的string.h头文件中定义了一组有用的函数,被称为字符串处理函数。
字符串就是由字母,数字和符号组成的一行字符序列,通常以字符串结尾显示。
它是一种数据抽象,是用来存储,分析,表示和处理应用程序中的文本数据的一种常见方式。
1.strlen()函数:该函数用来计算字符串的长度,不包括字符串结尾的null字符
'\0'。
该函数所返回的字符数不包括null字符,而只代表字符串中实际的字符数。
2.strcat()函数:该函数的作用是将字符串s2拼接到字符串s1的末尾。
这意味着s1的末尾会出现字符串s2的第一个字符,直到结束符'\0'。
4.strcmp()函数:该函数用于比较两个字符串s1和s2,如果s1>s2,函数会返回正值;如果s1=s2,函数会返回0;如果s1
5.strchr()函数:该函数用于在字符串s1中查找给定字符c。
如果成功,函数会返回指向找到字符的指针;否则,函数会返回NULL。
7.strtok()函数:该函数用于将字符串分割成一系列子字符串,每个子字符串以一个或多个指定的分隔符分隔。
以上就是标准C语言的string.h头文件中的一些常用的字符串处理函数,这些函数主要用于对字符串的操作,如切割,拼接,比较等。
由于 C 语言的数据结构比较简单,因此这个头文件函数的功能也是非常强大的,可以满足各种字符串处理的需求。
c中string函数库常用函数
c中string函数库常用函数C语言中的string函数库是一个非常重要的函数库,它包含了许多常用的字符串处理函数。
这些函数可以帮助我们更加方便地处理字符串,提高我们的编程效率。
在本文中,我们将介绍一些常用的string函数库函数。
1. strlen函数strlen函数用于计算字符串的长度,它的原型如下:size_t strlen(const char *s);其中,s是要计算长度的字符串。
该函数返回字符串s的长度,不包括字符串末尾的空字符。
2. strcpy函数strcpy函数用于将一个字符串复制到另一个字符串中,它的原型如下:char *strcpy(char *dest, const char *src);其中,dest是目标字符串,src是源字符串。
该函数将源字符串src 复制到目标字符串dest中,并返回目标字符串dest的指针。
3. strcat函数strcat函数用于将一个字符串连接到另一个字符串的末尾,它的原型如下:char *strcat(char *dest, const char *src);其中,dest是目标字符串,src是要连接的字符串。
该函数将源字符串src连接到目标字符串dest的末尾,并返回目标字符串dest的指针。
4. strcmp函数strcmp函数用于比较两个字符串是否相等,它的原型如下:int strcmp(const char *s1, const char *s2);其中,s1和s2是要比较的两个字符串。
该函数返回一个整数值,如果s1和s2相等,则返回0;如果s1小于s2,则返回一个负数;如果s1大于s2,则返回一个正数。
5. strchr函数strchr函数用于在一个字符串中查找一个字符,它的原型如下:char *strchr(const char *s, int c);其中,s是要查找的字符串,c是要查找的字符。
该函数返回一个指向第一个匹配字符的指针,如果没有找到匹配字符,则返回NULL。
c 中string的用法
在 C 语言中,字符串(String)实际上是一个字符数组,以 null 字符('\0')结尾。
C 中没有专门的字符串类型,而是使用字符数组来表示字符串。
以下是一些常见的C 中字符串的用法:
字符数组声明和初始化:
字符串输入和输出:
字符串函数:
C 标准库提供了许多用于处理字符串的函数,这些函数定义在string.h头文件中。
以下是一些常见的字符串函数:
•strlen:计算字符串的长度。
•strcpy 和 strncpy:复制字符串。
•strcat 和 strncat:连接字符串。
这只是 C 语言中字符串的基础用法。
需要注意的是,C 中的字符串是以 null 字符结尾的字符数组,因此在操作字符串时需要确保数组足够大以容纳字符串及其 null 字符。
此外,使用字符串函数时要注意数组边界,以防止缓冲区溢出。
c++中的string常用函数用法总结
c++中的string常⽤函数⽤法总结标准c++中string类函数介绍之所以抛弃char*的字符串⽽选⽤C++标准程序库中的string类,是因为他和前者⽐较起来,不必担⼼内存是否⾜够、字符串长度等等,⽽且作为⼀个类出现,他集成的操作函数⾜以完成我们⼤多数情况下(甚⾄是100%)的需要。
我们可以⽤ = 进⾏赋值操作,== 进⾏⽐较,+ 做串联(是不是很简单?)。
我们尽可以把它看成是C++的基本数据类型。
好了,进⼊正题………⾸先,为了在我们的程序中使⽤string类型,我们必须包含头⽂件 <string>。
如下:#include <string> //注意这⾥不是string.h string.h是C字符串头⽂件#include <string>using namespace std;声明⼀个字符串变量很简单:string Str;这样我们就声明了⼀个字符串变量,但既然是⼀个类,就有构造函数和析构函数。
上⾯的声明没有传⼊参数,所以就直接使⽤了string的默认的构造函数,这个函数所作的就是把Str初始化为⼀个空字符串。
String类的构造函数和析构函数如下:a) string s; //⽣成⼀个空字符串sb) string s(str) //拷贝构造函数⽣成str的复制品c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值e) string s(cstr) //将C字符串作为s的初值f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
g) string s(num,c) //⽣成⼀个字符串,包含num个c字符h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值i) s.~string() //销毁所有字符,释放内存都很简单,我就不解释了。
c语言中对字符串操作的函数
c语言中对字符串操作的函数
C语言中有许多用于字符串操作的函数。
其中一些常见的函数包括:
1. strlen()函数,用于获取字符串的长度,不包括字符串末尾的空字符。
2. strcpy()函数,用于将一个字符串复制到另一个字符串中。
3. strcat()函数,用于将一个字符串连接到另一个字符串的末尾。
4. strcmp()函数,用于比较两个字符串是否相等。
5. strchr()函数,用于在字符串中查找特定字符的第一次出现的位置。
6. strstr()函数,用于在字符串中查找特定子串的第一次出现的位置。
7. strtok()函数,用于将字符串分割成标记(token)。
8. sprintf()函数,用于将格式化的数据写入字符串中。
这些函数是C语言中用于字符串操作的一部分常见函数。
它们
可以帮助我们对字符串进行复制、连接、比较、搜索等操作。
当然,除了这些函数之外,C语言中还有许多其他用于字符串操作的函数,每个函数都有其特定的用途和功能。
在实际编程中,我们可以根据
具体的需求选择合适的字符串操作函数来处理字符串。
希望这些信
息能够帮助到你。
string的常用库函数(主要摘自谭浩强版C语言教材)
string的常⽤库函数(主要摘⾃谭浩强版C语⾔教材)这⾥对C程序设计第五版(谭浩强)的⼀些string常⽤库函数在此总结以下,以便记忆同时注意提醒⾃⼰以下,字符串通常是⽤双引号,⽽单⼀的⼀个字符⽤单引号1.puts函数常⽤形式:puts(字符数组) ——————输出字符数组/字符串puts(str);2.gets函数常⽤形式:gets(字符数组)——————输⼊字符串,通常⽤于输⼊字符数组gets(str);3.strcat函数常⽤形式:strcat(字符数组1,字符数组2)——————把两个字符数组中的字符串连接起来,把字符数组1和字符数组2中的字符串连接之后,放在字符数组1中,调⽤之后的结果是字符数组1的地址。
也就是新得到的字符数组1中的字符串是原字符数组1和字符数组2中字符串的结合。
strcat(str1,str2);4.strcpy和strncpy函数常⽤形式:strcpy(字符数组1,字符数组2)——————将字符串2复制到字符数组1中去,在调⽤之后得到新的字符数组1,其字符串为字符数组2的字符串。
strcpy(str1,str1); strcpy(str1,"i love china")strncpy(字符数组1,字符数组2,位数)——————将字符数组2中的前n位字符复制到数组1中strncpy(str1,str2,2)//将字符数组2的前两个字符复制到字符数组1中5.strcmp函数常⽤形式:strcmp(字符串1,字符串2)——————⽐较字符串1和字符串2的⼤⼩strcmp(str1,str2);strcmp("china","korea");strcmp("china",str1);注意返回值:如果字符串1与字符串2相同,返回值0如果字符串1⼤于字符串2,返回值为⼀个正整数如果字符串1⼩于字符串2,返回值为⼀个负整数6.strlen函数常⽤形式:strlen(字符数组)——————测量字符串长度n=strlen(str1);n的值即为字符串的长度。
C++-string常用函数整理(建议收藏)
C++-string常用函数整理(建议收藏)作者:翟天保Steven版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处最近刷笔试题,涉及到许多字符串相关的题目,所以将一些常用的函数整理一下,便于后面查看。
本文后续持续更新。
构造函数:1.string s; // 声明一个s字符串,为空2.string s(ss); // 声明一个s字符串,将ss字符串复制过来3.string s(ss,2); // 声明一个s字符串,将ss字符串从2位置(也就是第三个字符)后的所有字符复制过来4.string s(ss,1,3); // 声明一个s字符串,将ss字符串从1位置(也就是第二个字符)起的3个字符复制过来5.string s(chars); // 声明一个s字符串,将C字符串复制过来6.string s(chars,5); // 声明一个s字符串,将C字符串的前5个字符复制过来7.string s(6,char); // 声明一个s字符串,初值为6个char类型的字符,比如char为'a',则s为aaaaaa析构函数:1.s.~string(); // 将s字符串析构赋值函数:1.string s=c; // 赋值函数,c既可以是字符串,也可以是C字符串,比如char a[]=“123”2.s.assign(ss); // 赋值函数,ss既可以是字符串,也可以是C字符串3.s.assign(ss,1,3); // 赋值函数,ss无论是string字符串还是C字符串,均从1位置开始的3个字符赋值4.s.assign(ss,1); // 赋值函数,ss若为string字符串,则从1位置开始的所有字符赋值;若ss为C字符串,则赋值前1个字符5.s.assign(6,char); //赋值函数,赋为6个char类型的字符6.s.assign(s1.begin(),s1.end()-1); //赋值函数,将s1字符串从开始到倒数第二个字符赋值给s,string有begin和end,C字符串没有哦操作函数:1.swap(s1,s2); // 交换两个字符串2.s.size(); // 返回字符串字符个数3.s.length(); // 返回字符串字符个数4.s.clear(); // 清除所有字符5.s.empty(); // 返回字符串是否为空,若空则true,非空则false6.s.begin(); // 字符串迭代器-开始位置7.s.rbegin(); // 字符串迭代器-逆向开始位置,逆向开始是跳过结束符的第一个字符8.s.end(); // 字符串迭代器-结束位置,注意结束一般是'\0'9.s.rend(); // 字符串迭代器-逆向结束位置10.s.capacity(); // 返回已分配存储的大小11.s.resize(n); // 把字符串的长度设置为n个字符,若s字符串原本为1234,n为2,则resize后的s字符为1212.s.max_size(); // 返回字符串的最大大小13.s.capacity(); // 保留一定量内存以容纳一定数量的字符14.s.at(5); // 输出s字符串5位置的字符(第六个字符)15.getline(cin,s); // 获取一行字符串给s16.s.copy(cs,3,2); // 将s字符串第二个字符后的三个字符,复制到C字符串cs的前三个字符的位置,原字符被替换掉,cs只能是C字符串17.s.c_str(); // 将内容以C_string返回18.s.data(); // 将内容以字符数组形式返回,和c_str()输出基本一致,区别在于data()结尾不补\0,毕竟是数组形式添加函数:1.s+=s1; // 添加函数,直接添加字符串至后方,s1可以是string字符串也可以是C字符串2.s.append(ss); // 添加函数,将ss添加到后方3.s.append(ss,1,3); // 添加函数,ss无论是string字符串还是C 字符串,均将从1位置开始的3个字符添加4.s.append(ss,1); // 添加函数,ss若为string字符串,则将从1位置开始的所有字符添加;若ss为C字符串,则添加前1个字符5.s.append(6,char); //添加函数,添加6个char类型的字符6.s.append(s1.begin(),s1.end()-1); //添加函数,将s1字符串从开始到倒数第二个字符添加到s后面,string有begin和end,C字符串没有哦插入函数:1.s.insert(2,ss); // 插入函数,在s字符串的第二个字符后插入ss2.s.insert(2,ss,4); // 插入函数,若ss为string字符串,则在s字符串的第二个字符后插入ss的前四个字符;若ss为C字符串,则在s 字符串的第二个字符后插入ss第四个字符后的所有字符3.s.insert(2,ss,4,2); // 插入函数,s字符串的第二个字符后插入ss 第四个字符后的2个字符4.s.insert(2,6,char); //插入函数,s字符串的第二个字符后6个char类型的字符5.s.insert(s.begin()+3,'A'); // 插入函数,通过迭代器在s字符串第三个字符后添加1个A字符6.s.insert(s.begin()+3,6,'A'); // 插入函数,通过迭代器在s字符串第三个字符后添加6个A字符7.s.insert(s.begin()+3,ss.begin(),ss.end()); // 插入函数,通过迭代器在s字符串第三个字符后添加ss字符串从开始到结尾的所有字符删除函数:1.s.erase(s.begin()+3); // 删除函数,删除字符串第3个字符后的第一个字符,也就是第四个字符2.s.erase(s.begin(),s.begin()+3); // 删除函数,删除字符串第1到第3的所有字符,虽然s.begin()+3指向从头起第四个字符,但是最后这个字符是不删除的3.s.erase(1,3); // 删除函数,删除字符串从1位置(第二个字符)起的3个字符提取函数:1.s=ss.substr(1,3); // 提取函数,提取ss字符串从1位置起的3个字符给s字符串2.s=ss.substr(); // 提取函数,提取ss字符串的所有内容给s字符串3.s=ss.substr(3); // 提取函数,提取ss字符串从3位置起的所有内容给s字符串查找函数:1.a=s.find('A',1); // 提取函数,a是string::size_type类型,从前面1位置开始查找,查找A字符最早出现的位置,若没找到,则返回string::npos2.a=s.find(ss,1); // 提取函数,从前面1位置开始查找,查找ss 字符串最早出现在s字符串的位置,若没找到,则返回string::npos3.a=s.find(cs,1); // 提取函数,从前面1位置开始查找,查找C字符串cs最早出现在s字符串的位置,若没找到,则返回string::npos4.a=s.find(cs,1,2); // 提取函数,从前面1位置开始查找,查找C 字符串cs中前两个字符最早出现在s字符串的位置,若没找到,则返回string::npos;注意string字符串没有该格式函数5.a=s.rfind('A'); // 提取函数,从后查找,查找A字符最先出现的位置,若没找到,则返回string::npos6.a=s.find_first_of(ss); // 提取函数,从前查找,ss字符串中任一字符出现在s字符串中的位置7.a=s.find_first_of(ss,3); // 提取函数,从第3个字符后查找(即第4个字符开始),ss字符串中任一字符最先出现在s字符串中的位置8.a=s.find_last_of(ss); // 提取函数,从前查找,ss字符串中任一字符最后一次出现在s字符串中的位置;换句话说,从后查找,最先出现的位置9.a=s.find_last_of(ss,3); // 提取函数,从后面第3个字符后查找(即第4个字符开始),ss字符串中任一字符最先出现在s字符串中的位置;换句话说,在s后面第3个字符位置前的字符串中,ss任一字符最后一次出现在此字符串中的位置10.a=s.find_first_not_of(ss); // 提取函数,从前查找,任一非ss 字符串中字符最早出现在s字符串中的位置11.a=s.find_first_not_of(ss,3); // 提取函数,从第3个字符后查找(即第4个字符开始),任一非ss字符串中字符最先出现在s字符串中的位置12.a=s.find_last_not_of(ss); // 提取函数,从前查找,任一非ss 字符串中字符最后一次出现在s字符串中的位置;换句话说,从后查找,最先出现的位置13.a=s.find_last_not_of(ss,3); // 提取函数,从后面第3个字符后查找(即第4个字符开始),任一非ss字符串中字符最先出现在s 字符串中的位置;换句话说,在s后面第3个字符位置前的字符串中,任一非ss字符串中字符最后一次出现在此字符串中的位置哈哈哈,后面这几个find函数是不是看晕了,沉下心来理解一下我说的逻辑,然后自己写个测试代码试试就懂了,编程一定不要背,而是去体会和理解,这样才能活学活用~比较函数:pare(ss); // 比较函数,直接比较s和ss的字符串大小,从第一个字符开始比,若一样则下一个;若s大于ss则返回1,等于返回0,小于返回-1pare(2,2,ss); // 比较函数,用s字符串第二个字符后的两个字符作为子字符串,来和ss比较pare(2,2,ss,1,3); // 比较函数,用s字符串第二个字符后的两个字符作为子字符串,来和ss第一个字符后三个字符组成的子字符串比较替换函数:1.s.replace(1,2,ss); // 替换函数,将s字符串第一个字符后的两个字符替换为ss字符串2.s.replace(s.begin(),s.begin()+3,ss); // 替换函数,将s字符串从头起的三个字符替换为ss字符串3.s.replace(1,2,ss,2,3); // 替换函数,将s字符串第一个字符后的两个字符替换为ss字符串第二个字符后的三个字符4.s.replace(1,2,ss,2); // 替换函数,将s字符串第一个字符后的两个字符被替换,若ss为string字符串,则进行替换的字符串为ss字符串第二个字符后的所有字符;若ss为C字符串,则进行替换的字符串为ss字符串的前两个字符5.s.replace(s.begin(),s.begin()+3,ss,2); // 替换函数,将s字符串从头起的三个字符替换为C字符串ss的前两个字符,注意ss字符串只能是C字符串而不是string字符串6.s.replace(0,3,5,'A’); //替换函数,将s字符串从头起的三个字符替换为5个A字符7.s.replace(s.begin(),s.begin()+3,5,'A’); //替换函数,将s字符串从头起的三个字符替换为5个A字符总结:细心的朋友应该发现了,在string函数的调用过程中,输入参数个数、类型不同可能会带来不同的结果,而string字符串和C字符串(也就是char*)大多数情况下的调用情况一致,比如输入2个数字的时候,第一个数字往往代表了字符操作的起点位置,第二个数字代表了操作的字符个数;但是,如果只输入1个数字X的时候,就有所不同,若字符串是string,则表示从该数字X对应位置往后的所有字符进行操作,若字符串是C字符串,则表示取前X个字符进行操作。
c string类的常用方法
c string类的常用方法在C语言中,字符串通常表示为字符数组,而不是像C++那样有专门的字符串类。
但C标准库中提供了一些用于操作和处理字符串的函数。
以下是其中的一些常用方法:1. strcpy():将一个字符串复制到另一个字符串。
```cchar str1[50];strcpy(str1, "Hello, World!");```2. strcat():将一个字符串连接到另一个字符串的末尾。
```cchar str1[50] = "Hello, ";strcat(str1, "World!");```3. strlen():返回字符串的长度,不包括终止字符'\0'。
```cchar str[] = "Hello, World!";printf("%d", strlen(str)); // 输出 13```4. strcmp():比较两个字符串。
```cchar str1[] = "Hello";char str2[] = "World";if (strcmp(str1, str2) < 0) {printf("%s is less than %s\n", str1, str2);} else if (strcmp(str1, str2) > 0) {printf("%s is greater than %s\n", str1, str2); } else {printf("%s is equal to %s\n", str1, str2);}```5. strstr():在字符串中查找子串。
```cchar str[] = "Hello, World!";char sub[] = "World";char result = strstr(str, sub);if (result != NULL) {printf("Found '%s' in '%s'\n", sub, str);} else {printf("Did not find '%s' in '%s'\n", sub, str); }```6. sprintf():将格式化的数据写入字符串。
C语言常用的字符串函数总结
C语⾔常⽤的字符串函数总结⼀、strlen1、原型:size_t strlen(char const* string);2、功能:返回字符串 string 的长度(不包含字符串终⽌符NUL)3、注意:size_t是⼀个⽆符号整数类型4、举例:1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>45int main()6 {7char* y = "abcdef";8char* x = "abcd";910if (strlen(x) >= strlen(y)) {11 printf("1: strlen(x) >= strlen(y)\n");12 } else {13 printf("1: strlen(x) < strlen(y)\n");14 }1516/* 由于strlen(x)返回的是⼀个size_t,所以strlen(x) - strlen(y) >= 0恒成⽴,17 * 导致出现错误的结论18*/19if (strlen(x) - strlen(y) >= 0) {20 printf("2: strlen(x) - strlen(y) >= 0\n");21 } else {22 printf("2: strlen(x) - strlen(y) < 0\n");23 }2425// 将size_t转换为int类型后,可以返回正确的值26if ((int)(strlen(x)) - (int)(strlen(y)) >= 0) {27 printf("3: (int)strlen(x) - strlen(y) >= 0\n");28 } else {29 printf("3: (int)strlen(x) - strlen(y) < 0\n");30 }3132return0;33 }View Code运⾏结果:⼆、strcpy1、原型:char *strcpy(char *dst, char const *src);2、功能:将参数src字符串复制到dst参数中。
