string属于标准库类型
1、使用时须包含头文件:
#include <string>
using std::string
2、string对象的初始化
(1)默认初始化:string str;
(2)复制初始化:string s1(s2);
(3)直接初始化:string s1("hello");
string s1(n,'c');
3、字符串字面值与标准库string类型不是同一种类型。
字符串字面值实际上就是一个c风格字符串,例如"hello"是一个const char*类型。
string str = "hello";也是正确的,是因为string类在实现时有这样的一个重载:string& operator = ( const char* );
注意:
char* ch1 = "hello";//ch1是一个存放于栈中的指针,指向"hello"所在的常量数据区
char ch2[] = "hello";//ch2是一个存放于栈中的数组变量,同时ch2也代表该数组的首地址(即指向第一个字符)。过程是:在栈中为ch2分配大小为sizeof(char)*6=6(byte)的内存空间,将字符串字面值"hello"按顺序存放到该空间中。
4、string对象的方法
(1)size_type size():返回string对象中字符的个数。
size_type实际就是unsigned int类型。
C风格字符串是以空字符('\0')结尾的,比如"hello"编译器会自动在结尾添加'\0',所以,sizeof("hello") == 6,strlen("hello") == 5;
string对象不是以'\0'结尾,所以 string str = "hello";str.size() == 5;
(2)bool empty():判断string对象对象是否为空,为空返回true,否则返回false;
5、string关系操作符
比较string对象的大小或者是否相等:
== 判断是否相等,相等为true,不等为false;
同样,<,<=,>,>=
比较大小时,任何小写字母大于大写字母。
6、两个string对象相加
连接
7、string对象和字符串字面值连接
string对象和字符串字面值连接时,+操作符的左右操作数必须至少有一个是string类型。
8、从string对象获取单个字符
string对象可以通过下标操作符([])来访问string对象中的单个字符。
1、使用时须包含头文件:
#include <string>
using std::string
2、string对象的初始化
(1)默认初始化:string str;
(2)复制初始化:string s1(s2);
(3)直接初始化:string s1("hello");
string s1(n,'c');
3、字符串字面值与标准库string类型不是同一种类型。
字符串字面值实际上就是一个c风格字符串,例如"hello"是一个const char*类型。
string str = "hello";也是正确的,是因为string类在实现时有这样的一个重载:string& operator = ( const char* );
注意:
char* ch1 = "hello";//ch1是一个存放于栈中的指针,指向"hello"所在的常量数据区
char ch2[] = "hello";//ch2是一个存放于栈中的数组变量,同时ch2也代表该数组的首地址(即指向第一个字符)。过程是:在栈中为ch2分配大小为sizeof(char)*6=6(byte)的内存空间,将字符串字面值"hello"按顺序存放到该空间中。
4、string对象的方法
(1)size_type size():返回string对象中字符的个数。
size_type实际就是unsigned int类型。
C风格字符串是以空字符('\0')结尾的,比如"hello"编译器会自动在结尾添加'\0',所以,sizeof("hello") == 6,strlen("hello") == 5;
string对象不是以'\0'结尾,所以 string str = "hello";str.size() == 5;
(2)bool empty():判断string对象对象是否为空,为空返回true,否则返回false;
5、string关系操作符
比较string对象的大小或者是否相等:
== 判断是否相等,相等为true,不等为false;
同样,<,<=,>,>=
比较大小时,任何小写字母大于大写字母。
6、两个string对象相加
连接
7、string对象和字符串字面值连接
string对象和字符串字面值连接时,+操作符的左右操作数必须至少有一个是string类型。
8、从string对象获取单个字符
string对象可以通过下标操作符([])来访问string对象中的单个字符。