string 定义与初始化
string可以看做一个类类型,类似于c中的结构体
我们来看一下如何初始化一个string对象,有如下几种方法:也可以直接用字符数组初始化
#include<string>//要加上头文件
int main()
{
int num = 4;
string s1 = "I Love China!";
string s2("I Love China!");
string s3 = s2;
string s4(num, 'a');//s4=aaaa,相当于num个a
string s5;//默认为空
}
string 对象的操作
1、s.empty() 判断是否为空,返回布尔值,若空返回ture
例如:输出结果 s1为空
int main()
{
string s1;
if (s1.empty())
{
cout << "s1为空" << endl;
}
}
2、s.size() / s.length() 返回字符串的字节数/长度
例如:输出结果为 14 14
int main()
{
string s1= "这是一个字符串";
cout << s1.size() << endl;
cout << s1.length() << endl;
return 0;
}
3、直接用s[n]访问单个字,符,用法与字符数组一样 ,注意不能越界访问
4、字符串相加 S1+S2 ,直接将两个字符串连接得到一个新的string对象。
5、s1=s2 字符串赋值,用s2中的内容取代s1中的内容
s1==s2 判断两个字符串是否相等
s1!=s2 判断两个字符串是否不相等
6、s.c_str () 返回一个字符串内容指针,这个指针指向一个字符串,以\0结尾
7、字面值和string相加
例如:
int main()
{
string s1="abc";
string s2 = "defg";
string s3 = s1 + " and " + s2 + 'e';
cout << s3 << endl;
return 0;
}
8、范围for针对string的使用
int main()
{
string s1="abcdef";
for (auto c : s1)
{
cout << c << endl;
}
for (auto &c : s1)
{
//toupper();将小写字符转换为大写字符
c = toupper(c);//由于c是引用类型,所以可以改变S1的值
}
cout << s1 << endl;
}