C++标准库string

来源:互联网 发布:软件流程图制作软件 编辑:程序博客网 时间:2024/04/29 12:30

一:标准库类型string

①使用string要包含头文件

#inludde<string>using std:string;

②sting 对象的初始化

string s1; //初始化一个空串string s2(s1); //吧s1赋值给s2(也就是拷贝初始化)string s2 = s1;string s3("value");//(直接初始化)string s3 = "value"string s4(n , 'c') //把s4初始化为n个字符组成的串(直接初始化)

直接初始化与拷贝初始化

如果使用=号初始化一个变量,实际上执行的是拷贝初始化,编译器直接把等号右边的初始值直接拷贝到新创建的对象中去。相反如果不使用等号,则执行的就是直接初始化。

③string对象的操作

对象赋值

string str1, str2 = "hello";str1 = str2;//str1包含str2串所有字符的一个副本//先把str1占用的内存释放掉,然后再分配存放str2副本的内存空间,最后吧str2中的所有字符复制到新分配的内存空间

对象想加

 string str1 = "hello"; string str2 = "world"; str1 += str2;//str1 is hello world string str3 = str1+" " + str2;//hello world

对象读取

//从键盘读取一个一个单词string s1;while (cin >> s1) {        cout << s1 << endl;    }
//读取一行while (getline(cin, str)) {        cout << str << endl;    }

cin和getline的各自特点

  1. cin会忽略有效字符前的空白符,然后再次遇见空白字符就会停止,这个空白字符还会留在流中
  2. getline函数会首先忽略字符前的空白字符,然后遇见换行符停止,换行符会从流中去掉
str.empty() //判断字符串是不是为空str.size()  //得到字符串的大小,有几个字符

有关于string ::size_type类型
由于string的size()函数返回的是一个无符号的整数,如果表达式中混用了带符号的号无符号的数可能会产生意想不到的后果。所以size_type就代表这无符号的整数。

String :: size_type len = str.size();//使用size_type就能达到代码跟机器无关,跨平台使用

string对象的比较使用< > =

string对象的遍历

//遍历字符串,打印出一个一个字符for (auto c : str)    {        cout << c << endl;    }  

也可以通过索引访问

if(!str.empty()){    cout << str[0] << endl;}

操作字符串的函数都在cctype头文件里

0 0