C++基础篇——string 类型
一、string 类简介
string 类型是一个标准库中的类型,代表一个可变长字符串。
原来在 C 语言里,一般会用字符数组来表示字符串
char str[100] = "I love China";
而在 C++ 中,由于 string 类型提供了更多的操作字符串的方法,故更多的使用 string。
字符数组和 string 类型之间是可以相互转换的。
二、定义和初始化 string 对象
string s1; //默认初始化,代表一个空串
string s2 = "I love China!"; //将字符串复制到了 s2 代表的一段内存中
string s3("I love China!");
string s4 = s2; //把 s2 中的内容复制到了 s4 所代表的一段内存中
int num = 6;
string s5(num, 'a') //把 s5 初始化为连续 num 个字符 'a' 组成的字符串
三、string 对象上的常用操作
1)判断是否为空 empty(),空则返回1。
string s1;
if(s1.empty()){
cout << "s1为空" << endl;
}
2)size() 或 length():返回字节/字符数量
string s1;
cout << s1.size() << endl; //0
string s2 = "我爱中国";
cout << s2.size() << endl; //8,一个汉字 2 字节
3)s.c_str():返回一个字符串 s 中的内容指针。
string s1 = "abc";
string s2 = "abC";
const char* p = s2.c_str(); //现在 p 指向 s2 里的字符串
char str[100];
strcpy_s(str, sizeof(str), p); //字符串内容复制到 str 中
cout << str << endl; //abC
4) 范围 for 针对 string 的使用
string s1 = "I love China!";
for(auto c:s1) //这里 c 的类型其实就是 char
{
cout << c << endl; //每次输出一个字符,后边跟一个换行
}
还可以通过引用来修改 s1 的值。
string s1 = "I love China";
const char* p = s1.c_str();
for (auto& c : s1)
{
c = toupper(c); //这里改变 c 其实就是改变 s
}
cout << s1 << endl; //I LOVE CHINA