string类是C++提供的抽象数据类型,其支持可变长字符串,下面这篇文章主要给大家总结介绍了关于C++中string类的常用方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
引言
C++中提供了新的数据类型;;字符串的类型(string)。其实string并不是C++的基本类型,而是C++标准库中声明的string类。使用这种数据类型,可以定义对象,每个字符串变量都是string类的对象。标准库类型字符串表示一个可变长度的字符序列,必须首先包含字符串类型的头文件。
作为标准库的一部分,string在std中定义在named 空之间。
[示例]
#includelt;stringgt;//注意这里没有.h using namespace std;
Class有两层含义:第一层是处理char类型的数组,在标准C中封装了一些字符串处理函数,当string类进入C++标准时,它的第二层含义是容器。
C++ string类常用方法
1.string(const char *s):将string对象初始化为S指向的字符串..
string str("hello");
2.string(size_type n,char c):创建一个包含N个元素的string对象,其中每个元素都被初始化为字符c。
string str(10, 'a');
3、字符串(const string ampStr):将字符串对象初始化为字符串对象str(复制构造函数)
string str("abcde");string str2(str);
4.string():创建一个长度为0的默认string对象(默认构造函数)
string str;
5.使用C语言样式字符串处理字符串对象。
string str = "hello!";
6.获取字符串对象的长度。C语言中使用strlen()获取字符串的长度,C++中使用str.size()或str.length()。
string str("hello!");int len1 = str.size();int len2 = str.length();
7.将一个字符串对象分配给另一个字符串对象
string str("hello!");string str2;str2 = str;
8.字符串对象的拼接
在C #中,strcat和strncat函数用于拼接字符串。在C++中,可以采用以下方法:
string str1("hello");string str2("world");string str3 = str1 + str2;
9.使用+=将字符串对象、字符和C样式字符串追加到字符串对象。
string str("hello");string str2("world");str += str2;str += 'a';str += "abcd";
10.string.append()函数,该函数在string对象后添加一个string对象或C样式的字符串。
string str("hello");string str2("world");str.append(str2);str.append("abcd");
1.string.push_back()函数向string对象追加一个字符。
string str("hello");char ch = 'a';str.push_back(ch);
12.对于字符串对象的比较,可以直接使用关系运算符。
string str1("abcd");string str2("abcd");if(str1 == str2) break;
13.string.compare()方法也可用于比较字符串对象。
int compare(const stringamp;str) const;int compare(size_t pos,size_t len,const stringamp;str)const;int compare(size_t pos,size_t len,const stringamp;str, size_t subpos,size_t sublen)const;int compare(const char * s)const;int compare(size_t pos,size_t len,const char * s)const;int compare(size_t pos,size_t len,const char * s,size_t n)const;// examplestring str1("hello world");string str2("hello boy");str1.compare(6, 3, str2, 6, 3);
14.使用string.substr()函数获取substring。
string str("hello");string str2 = str.substr(3,2)
15.访问字符串string的元素。
string str("hello");cout lt;lt; str[2] lt;lt; endl;cout lt;lt; str.at(2) lt;lt; endl;
16.使用string.find()方法查找字符。
// 从字符串的 pos 位置开始(若不指定 pos 的值,则默认从索引 0 处开始),查找子字符串 str。// 如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回 string::npos:// string 类将 npos 定义为保证大于任何有效下标的值。size_type find (const stringamp; str, size_type pos = 0) const;size_type find (const char *s, size_type pos = 0) const;size_type find (const char *s, size_type pos, size_type n);size_type find (char ch, size_type pos = 0) const;
17.string.rfind()类似于string.find()方法,只是搜索顺序不同。string.rfind()从指定的位置pos(默认为字符串的结尾)向前搜索,直到字符串的开头,并在第一次找到匹配的第一个字符时返回该字符的索引。换句话说,就是找到一个子串或字符的最后一个位置。
18.string.find_first_of()方法从字符串中的指定位置向后查找参数中任何字符的第一个匹配项(默认为索引0)。
string str("hello world");int pos = str.find_first_of("abcde");int pos = str.find_first_of("abcde", 1); // 第二个参数为位置
9.string.find_last_of()方法在字符串中查找参数中任何字符的最后一个出现位置。
20.string.find_first_not_of()方法查找字符串中不包含在参数中的第一个字符。
21.string.find_last_not_of()方法查找字符串中不包含在参数中的最后一个字符。
22.使用string.insert()插入。
stringamp; insert(size_t pos,const string&str); // 在位置 pos 处插入字符串 strstringamp; insert(size_t pos,const string&str,size_t subpos,size_t sublen); // 在位置 pos 处插入字符串 str 的从位置 subpos 处开始的 sublen 个字符stringamp; insert(size_t pos,const char * s); // 在位置 pos 处插入字符串 sstringamp; insert(size_t pos,const char * s,size_t n); // 在位置 pos 处插入字符串 s 的前 n 个字符stringamp; insert(size_t pos,size_t n,char c); // 在位置 pos 处插入 n 个字符 citerator insert (const_iterator p, size_t n, char c); // 在 p 处插入 n 个字符 c,并返回插入后迭代器的位置iterator insert (const_iterator p, char c); // 在 p 处插入字符 c,并返回插入后迭代器的位置
23.使用string.erase()删除元素。
stringamp; erase (size_t pos = 0, size_t len = npos); // 删除从 pos 处开始的 n 个字符iterator erase (const_iterator p); // 删除 p 处的一个字符,并返回删除后迭代器的位置iterator erase (const_iterator first, const_iterator last); // 删除从 first 到last 之间的字符,并返回删除后迭代器的位置
24.使用getline()函数获取字符串输入。
string str;getline(cin, str);
25.使用string.empty()函数确定字符串是否为空
26.使用string.swap()函数交换两个字符串。
string str1 = "hello";string str2 = "HELLO";str1.swap(str2);
27.string.back()获取或修改字符串的最后一个字符。
string str("abcd");char b = str.back();str.back() = 'e';
28.string.front()获取或修改字符串的第一个字符。
29.string.pop_back()删除字符串的最后一个元素。
总结
关于C++中string类的常用方法的这篇文章到此为止。关于C++string类常用方法的更多信息
精彩评论