C/C++ 语言系列(六)复合数据类型之字符串
重点:区分下述四种形式:
1 | // 字符数组(Character sequences) |
字符数组
字符数组(Character sequences):http://www.cplusplus.com/doc/tutorial/ntcs/
字符串实际上是使用 null 字符 \0
终止的一维字符数组,如下:
代码如下:
1 | // 字符串实际上是使用 null 字符 \0 终止的一维字符数组 |
字符串指针
用字符数组和字符串指针都可实现字符串的存储和运算,但是两者是有区别的:
- 字符数组是一个数组,每个元素的值都可以改变。
- 而字符串指针指向的是一个常量字符串,它被存放在程序的静态数据区,一旦定义就不能改变。
这是最重要的区别。下面的代码在运行期间将会出错:
1 | str2[1] = 'a'; // hallo world |
string 字符串类
string
头文件提供了 string
类,参考:http://www.cplusplus.com/reference/string/
cstring 操纵器
cstring
头文件提供了大量的函数,用来操纵 C strings and arrays,参考:http://www.cplusplus.com/reference/cstring/
例如:
- Copying:
strcpy
Copy string
- Concatenation:
strcat
Concatenate strings
- Comparison:
strcmp
Compare two strings
- Searching:
- Other:
strlen
Get string length
参考
https://www.cplusplus.com/doc/tutorial/ntcs/
https://www.runoob.com/cplusplus/cpp-strings.html
https://stackoverflow.com/questions/1524356/c-deprecated-conversion-from-string-constant-to-char