String
头文件为 string。由于string类是C++里提出的,所以scanf,printf无法对string进行输入输出。
1.定义及初始化
string a="123"; //a的值为123
string b(a); //b的值为a
string c("hello"); //c的值为"hello"
string d(c,2,3); //从位置2开始 连续三个字符赋值给d
2.获取长度
//两者都使用的是string的 _M_string_length属性
cout<<c.length();
cout<<c.size();
3.字符串连接
//下面两个添加实现同一效果,也可以添加单个字符 如s=s+'1'
s=s+"123";
s.append("123");
4.判断是否为空
if(s.empty())
{
cout<<"字符串为空";
}
5.比较大小
if(a>b)
{
cout<<"a字符比较大"<<endl;
}
6.切片用法
//substr(pos,len)
string s="hello";
s=s.substr(0,2);//s的值为he
s.find('l');//返回的结果为‘l’第一次出现的位置 即为2
7.替代
//replace(pos,len,字符)
string a="hello world";
a.replace(0,2,"a");//从第0个元素开始的后两个元素替换成“a”,字符串a :allo world
8.插入
string s="hello";
a.insert(1,"1");//在下标为1的元素之前插入“1”, a:h1llo
9.删除
//earse(pos,len)
string a="hello world";
a.erase(0,3);//删除从下标为0开始的3个元素
10.字符串拷贝
string b=a;
11.转换为char数组
//c_str string转换为char数组
string a="123";
char *b=new char;
strcpy(b,a.c_str());
char数组
头文件为cstring
1.初始化
//需要注意,char数组最后一位一定为(0或'\0'),string则没有这个限制
char a[10]="123";
cout<<(int)a[4]; //第四位会直接输出0
2.字符复制
strcpy(a,b);//将b赋值给a
strncpy(a,b,max);//将b前max字符赋值给a
3.字符对比
if(strcmp(a,b)>0)
{
cout<<"a字符串比较大";
}
4.字符长度
//输出字符a的长度
cout<<strlen(a);
5.字符拼接
strcat(a,b);//将b添加到a的末尾
6.大小写转换
strlwr(a);//将a大写全部转换为小写返回,a的值也会修改
strupr(a);//将a小写全部转换为大写返回,a的值也会修改
7.字符分割
//stroke(a,b) a为原字符 b为分隔符
cout<<stroke(a," ");
//如果a的值为hello world 则输出hello a的值并不修改
常用数组处理函数
//memset:数组集体赋值,内存操作,速度快
memset(a,0,sizeof(a));//将a的前sizeof(a)字节的值赋为0
//memcpy:数组拷贝,内存操作,速度快
memcpy(a,b,sizeof(b));//将b的前sizeof(b)个字节的数值赋值给a