当前位置:编程学习 > C/C++ >>

C++STLstring

一、构造函数

1)、 string s;//创建一个空的字符串,相当于string s("");
2)、 string s1("hehe"); //<=>char charArray[] = "hehe"; string s1(charArray);用字符数组初始化
3)、 string s2("hehe", 2);//使用“hehe”的前两个字符来初始化S2
4)、 string s3(s2);//直接使用string对象s2来初始一个新的对象,调用复制构造函数
5)、 string s4(s1, 1, 2);//格式是string s4(s1, pos, n);用s1对象的从pos位置开始的n个字符来初始化
6)、 string s5(5, 'h');//格式string s5(n, ch);用n个字符ch来初始化一个string对象
7)、 string s6(s5.begin(), s5.end());//使用迭代器来指定一个范围内的元素来初始化一个对象
二、输入输出

1)、getline(cin, str);//从cin对象中提取一个串给str对象,直到遇到回车或者文件尾才结束

2)、cin >> str; //直接读取一个串,但是遇到空格、TAB、回车、文件尾就结束

3)、cout << str;//可以直接输出,因为<<已经被重载
三、重载操作符

1)、<、 <=、>、>=、 ==、!=  //可以直接使用来进行两个串的比较

2)、str = val; //赋值操作,val 可以是数组,string对象,字符串常量,但是不能是单个字符

3)、str += val; //字符串连接,把val接在str的后面,val可以是数组,string对象、字符串常量、单个字符

4)、str = val1 + val;//只要val、val1两者中有一个是string对象,就可以完成连接

5)、str[index];//使用下标访问单个字符:
四、常用的成员函数
1、----------------------------------------append()成员函数----------------------------------------------

1)、s.append(str);//参数为一个string对象

如:

    string s;
    string s1("hehe");
    s.append(s1);
    cout << s << endl;//打印hehe

2)、s.append(str, pos, n);//将str的从pos位置开始的n个字符追加到s的末尾

如:

    string s;
    string s1("hehe");
    s.append(s1, 1, 2);
    cout << s << endl;//打印eh

3)、s.append(charArray);//这个不多说,跟第一个差不多

4)、s.append(charArray, n);//看第二个来比较一下应该就知道了吧

如:

   string s;
    char ch[] = "hehe";
    s.append(ch, 2);
    cout << s << endl;//打印he

5)、s.append(n, ch);//在s的末尾追加n个字符ch,这个不举例了,很简单的

2、----------------------------assign()成员函数----------------------------

1)、s1.assign(s);//将s的备份复制给s1

如:

   string s("hehe");
    string s1;
    s1.assign(s);
    cout << s1 << endl;//打印hehe

2)、s.assign(str, pos, n);//将str的从pos位置开始的n个字符复制给s,这个不举例,很容易看懂的

3)、s.assign(charArray);

4)、s.assign(charArray, n);//要n字符而已

5)、s.assign(n, ch);//跟append(n, ch)比较

6)、s.assign(str.begin(), str.end());//用迭代器指定一个范围来复制给s
3、------------------------compare()成员函数----------------------------------------------------------------------

注:下面这些除了不容易理解的会给出例子之外,其他都不多说

说明:比较的原理是按照字典顺序,逐个比较的,如果s > str,返回正数,

如果s < str,返回负数; 如果s == str,返回0

1)、s.compare(str); //s与str比较

2)、s.compare(charArray);//s与charArray比较

3)、s.compare(pos, n, str);//s与str中从pos开始的N个字符比较

4)、s.compare(pos, n, charArray);//s与charArray中从pos开始的N个字符比较

5)、s.compare(pos1, n1, str, pos2, n2);//s中从pos1位置开始的n1个字符与str中从pos2开始的n2个字符比较

6)、s.compare(pos1, n1, charArray, pos2, n2);//s中从pos1位置开始的n1个字符与charArray中从pos2开始的n2个字符比较

4、------------------------c_str()、data()成员函数----------------------------------------------------------------------

1)、s.c_str();//返回以'\0'结束的C风格字符数组

2)、s.data();//返回不以'\0'结束的字符数组

5、------------------------erase()成员函数----------------------------------------------------------------------

1)、s.erase(pos, n);//删除从pos开始的n个字符

如:

    string s("hehe");
    s.erase(2, 2);
    cout << s << endl;//打印he

2)、s.erase(iter);//删除迭代器iter指定的字符

6、------------------------clear()、empty()、capacity()成员函数----------------------------------------

1)、s.empty();//判断串是否为空

2)、s.clear();//使s成员空串

3)、s.capacity();//返回串s的容量

7、------------------------find()成员函数-------------------------------------------------------------------------

1)、s.find(str, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos

2)、s.find(charArray, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos

3)、s.find(charArray, pos, n);//在s中从pos位置开始匹配,最多匹配n个字符,匹配到就返回第一个匹配到的位置,否则返回string::npos

8、------------------------find_first_of()成员函数--------------------------------------------------------------

1)、s.find_first_of(str, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos

2)、s.find_first_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch匹配的字符的位置,否则返回npos

3)、s.find_first_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos

4)、s.find_first_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个匹配到的字符的位置,否则返回npos

9、------------------------find_first_not_of()成员函数--------------------------------------------------------------

1)、s.find_first_not_of(str, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos

2)、s.find_first_not_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos

3)、s.find_first_not_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个没有匹配到的字符的位置,否则返回npos

4)、s.find_first_not_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch不匹配的字符的位置,否则返回npos
10、------------------------find_last_of()成员函数--------------------------------------------------------------

1)、s.find_last_of(str, pos);//返回最后一个匹配到的任意一个字符的位置

2)、s.find_last_of(charArray, pos, n);//返回最后一个匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符

11、------------------------find_last_not_of()成员函数--------------------------------------------------------------

1)、s.find_last_not_of(str, pos);//返回最后一个没有匹配到的任意一个字符的位置

2)、s.find_last_not_of(charArray, pos, n);//返回最后一个没有匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符

3)、s.find_last_not_of(ch, pos);//返回最后一个与ch不匹配的任意一个字符的位置

4)、s.find_last_not_of(charArray, pos);//返回最后一个没有匹配到的任意一个字符的位置

//这里不在书写其他了,真没有心情了。我真的很想生气,这CSDN竟然点发表,保存都没有反映,结果点错舍弃。又得重写一扁,
下面的不在讲了。

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,