1、C串
C串是一个以全零结束的字符串序列,也就是char类型的字符数组,编译器通过"/0"来判断C串是否结束。
char str[7] ="hello!" //str[6]是c串的结尾 str[6]="/0"
2、标准的c++ string 类
使用string的时候要导入库包
#include<string>
string本质上可以看作一种vector<char>,也就是元素为char的vector。有关vector 的操作都可以在
string上进行
- 通过变量指针来访问字符串的值
//通过变量指针来访问字符串的值 string str="Hello"; int n=str.length(); for(int i=0;i<n;i++){ cout<<str[i]<<endl; }
- 通过迭代器来访问
//通过迭代器来访问 for(auto it=str.begin();it!=str.end();++it) { cour<<*it<<endl; }
3、string的初始化(即string的构造函数)
string s1; string s2="hello world";//拷贝初始化 string s3("hello world");//直接初始化 string s4(s2);//类似于拷贝构造 string s5=s2;//直接赋值,s2是string 类对象 string s6(5,'a');//字符串为aaaaa
4、string类的常用方法
- 常用的无参函数(属于string类的成员方法)
string str="yyt" str.toCharArray();//把字符串转换为字符数组,即上面所说的c串 str.toLowerCase();//字符串转换为小写字符串 str.toUpperCase();//字符串转换为大写字符串 str.length();//获取字符串长度 str.isEmpty();//字符串是否为空
- 常用的有参函数(属于string类的成员方法)
String str1="hello"; string str2="Hello"; str1.equals(str2);//判断字符串内容是否相同,false str1==str2;//判断字符串地址是否相同,flase str1.equalsIgnoreCase(str2);//忽略大小写,true str1.concat(str2);//字符串的拼接
5、字符串的遍历算法
- 提取字符串中的所有数字
string number(string s){ string sgood; for (char ch: s){ if (isnumber(ch)){ sgood += ch; } } return sgood; } //isnumber()判断字符是否数字,或者通过ascll码来判断
- 将字符串中所有大写字母换为小写
string lowercase(string s) { for (char ch: s){ if (isupper(ch)){ ch= tolower(ch); } } return s; } //isupper()判断字符是否为大写 //islower()判断字符是否为小写