1. 初始化的几种方法和错误案例
首先当然是包含头文件了:
#include<string>
下面是几种初始化的方法,直接上代码了:
//**初始化的几种方式**//
string s1("Hello");
cout <<"s1= "<< s1 << endl;
string s2(8, '*'); //8个连续的*
cout << "s2= "<<s2 << endl;
string s3 = "Liubing";
cout << "s3= " << s3<<endl;
string s4;
s4 = 'F';
cout << "s4= " << s4 << endl;
几种错误写法:
- string s4=‘F’; 错误!但是上面代码里的那种s4写法是可以的。
- string s5=1; 错误!
- string s5;s5=1; 不报错,但是运行结果显示不出来。
2. 常用的成员函数及基本操作
这些用法主要包括,赋值、连接字符串、替换、删除等等,具体看代码,为了当做练习,就特意编了个练练手:
//**常用的成员函数、操作**//
//1、求长度length()和size()都可
cout << "length of s1: " << s1.length() << " or " << s1.size()<<endl;
//2、= string对象赋值
string s5 = s1;
cout << "s5= " << s5 << endl;
//3、+ 连接两个string对象
s5 += s3;
cout << "s5+s3= " << s5 << endl;
//4、substr() 提取子字符串函数
string s6;
s6 = s5.substr(5, 7); //s5下标5开始7个字符赋值给s6
cout << "Name: " << s6 << endl;
//5、insert() 插入字符函数
string s7(" is a student from ZJU");
s6.insert(7, s7); //将s7插入到s6中下标为7处,即末尾(从0开始数)
cout << "Insert campus info: " << s6 << endl;
//6、find() 寻找字符串函数
int p = s7.find("ZJU"); //查找ZJU第一次出现的地方,找到返回Z出现的位置,找不到返回string::npos静态常量
cout << "String ZJU is at " << p << endl;
//7、replace() 替换字符串函数
string s8("SDU");
s7.replace(p, 3, s8); //将p位置处连续3个字符换成s8,即ZJU换成SDU
s3.insert(7, s7); //替换之后重新插入到s3末尾
cout << "Replace campus info: " << s3 << endl;
//8、erase() 删除字符串函数
int p1 = s3.find(" is a student"); //先定位
s3.erase(p1); //删除下标p1之后的所有字符
cout << "Delete the campus info: " << s3 << endl;
课上老师说,以后尽量别用char什么的了,就用string吧。想了想,string的好处主要是因为有这么多好用的成员函数,这可能是它的优越之处吧。