C++学习笔记9:字符串和string类简介

来源:互联网 发布:德国公开赛 知乎 编辑:程序博客网 时间:2024/06/05 12:03

1. C风格字符串

以空字符‘\0’结尾的char数组

char cat[4] = { 'a','b','c','\0' };
2. 字符串常量(字符串字面值)

用双引号括起的字符串,隐式地包含结尾的空字符。应确保字符串的长度足够存储空字符在内的所有字符,声明时可以不指定长度,而是让编译器计算长度。

char birds[10] = "abcdef";char egg[] = "bubble";
2.1 拼接字符串常量

任何两个由空白(空格、制表符、换行符)分割的字符串常量将自动拼接成一个,拼接处的空字符被删除。

cout << "I am a fish." "not a bird.\n";
2.2 在数组中使用字符串

sizeof()计算整个数组的长度

strlen()计算可见的字符数(不包括空字符)

char name[15] = "C++play";int a = sizeof(name);  //15字节int b = strlen(name);  //7
2.3 字符串输入

cin使用空白(空格、制表符和换行符)来确定字符串的结束位置

2.4 每次读取一行字符串输入

cin.getline(name,len)遇到换行符时停止读取,舍弃换行符,自动添加空字符

cin.get(name,len)遇到换行符时停止读取,自动添加空字符,但换行符仍留在输入队列中

cin.get()读取一个字符

char name1[15];char name2[10];cin.get(name1, 15).get();cin.get(name2, 10);cin.getline(name1, 15);cin.getline(name2, 10);
3. string类

string s1 = "C++";string s2 = "java";string str;int len1 = s1.size();  //不包括结尾空字符cout << len1 << endl;getline(cin, str);  //读取一行输入