【语法基础】
→=→内容大纲源自老板的ppt
字符串:用双引号括起来的0个或多个字符。
1.赋值方法
string a="I'm writing a blog.";
string b=a;
2.修改元素
string a="I wrote a blog."
a[2]=i;
cout<<a;
//结果:
//i wrote a blog.
添加元素:
错误打开方式:
//目标效果为:I wrote a blog.!
a[15]='!';
正确打开方式:
a=a+"!";
3.删除元素
int pos=2,len=1;
string a="abcdefg";
a.erase(pos,len);
cout<<a;
//结果:
//abdefg
a.erase(pos,len)是将a中位置(下标)为pos的、长度为len的元素删去.
4.求长度
string a="I'm writing a blog."
int len=a.length();
cout<<len;
//结果:
//19
方法:字符串名字后面加上.length().
5.连接两个字符串
string a="I am writing ";
string b="a blog.";
string s=a+b;
cout<<s;
//结果:
//I am writing a blog.
类似于数字的加法.
6.字符串的比较
字符串的比较可以用 ==,>,<,>=,<=,!=
方法类似于数字的比较.
7.字符串的替换
string a="ABCDE";
string b="EDCBA";
a=b;
cout<<a<<endl<<b;
//结果:
//EDCBA
//EDCBA
方法类似于数字的替换.
8.提取子串
int pos=3,len=4;
string a="abcdefg";
string b;
b=a.substr(pos,len);
cout<<b;
//结果:
//defg
a.substr(pos,len)是将字符串a里面从下标为pos的、长度为len的子串赋值给b.
9.查找子串
string a="abcdefgabcdefg";
string b="cde";
int w=a.find(b);
cout<<w;
//结果:
//2
a.find(b)是查找b在a里面出现的左起第一个位置(下标),若找不到就返回-1.
int pos1=5;
int pos2=10;
string a="abcdefgabcdefg";
string b="cde";
int w1=a.find(b,pos1);
int w2=a.find(b,pos2);
cout<<w;
//结果:
//9
a.find(b,pos)是查找在a里面从pos开始的、左起第一个b的位置,若找不到就返回-1.
10.注意
string是C++特有的,不能用scanf()或printf()输入输出整个字符串,只能用cin和cout.
因为无论是cin还是scanf(),都是以空格或换行键作为结束标志,所以如果要读入带空格的一串字符,要用getline().如:
string a;
getline(cin,a);
若要读入带空格的字符数组:
char a[30];
scanf("%[^\n]%*c",&a);
//%[^\n]表示读入除\n(换行)以外的所有字符,%*c的作用是把\n去掉
//字符数组不能用getline()读入