String
- string是字符串,在声明一个字符串的时候,比如string a;这个过程是在栈上进行的,但是如果给这个字符串分配内存空间,这段区间是存储在堆上的,因此最好在声明字符串的时候就要指出字符串的大小和对其进行初始化
- string s1; 最好不要使用这种方式,效率低下
- string s3 = "Hello";可以使用
- string s4 = (10,'0');最好使用,不仅申请了一段内存空间还使用0对其进行初始化
直接初始化和拷贝初始化
- 使用等号,等号的右边是一个字符串,那么这种方式是拷贝初始化
- 不使用等号,则执行的是直接初始化
string上的操作
- string会自动忽略开头的空白,比如空白符、换行符、指标符等等,并从第一个真正的字符读起,直到遇到下一处的空白为止
- 使用getline读取一整行,函数的参数是一个输入流和一个string对象,从输入流中读取数据存入到string中,只要遇到换行符就会停止读取数据,虽然读取了换行符号,但是换行符号不会被存储到字符串中。
- 如果想要改变string对象中字符串的数值,必须把循环变量定义成引用类型,引用只是给定对象一个别名,当使用引用作为循环控制变量的时候,这个变量实际上被一次绑定到序列的每一个元素上,使用引用就可以改变绑定的字符。
std::string s("Hello World");for (auto &c : s) {c = toupper(c);}std::cout << s << std::endl;return 0;
- 使用string对象中的单个字符有两种方式:1,使用下标;2,使用迭代器