C++ 字符串学习笔记
C++ 中的字符串是一组字符的序列,通常用于存储和操作文本。在 C++ 中有多种方式来表示字符串,如字符数组、string 类和 char 指针等。
字符串的初始化
使用字符数组
使用字符数组来初始化一个字符串非常常见,以下是一个例子:
c++Copy Codechar str[] = "hello world";
该语句定义了一个名为 str
的字符数组,并将字符串 "hello world" 存储在其中。需要注意的是,在数组末尾会自动添加一个空字符 '\0' 作为字符串的结尾符。
使用 string 类
C++ 标准库中提供了 string 类,使用该类可以更方便地操作字符串。以下是一个例子:
c++Copy Code#include <string>
using namespace std;
string str = "hello world";
该语句定义了一个名为 str
的 string 类对象,并将字符串 "hello world" 存储在其中。
使用 char 指针
使用 char 指针来初始化字符串也是一种常见的方式,以下是一个例子:
c++Copy Codechar *str = "hello world";
该语句定义了一个名为 str
的 char 指针,并将指向字符串 "hello world" 的首地址。
字符串的常用操作
字符串长度
计算字符串长度的函数是 strlen()
,该函数会扫描字符串直到遇到空字符 '\0' 并返回字符串的长度(不包括空字符)。
c++Copy Codechar str[] = "hello world";
int len = strlen(str); // len 的值为 11
字符串复制
将一个字符串复制到另一个字符串中的函数是 strcpy()
,该函数会将源字符串的内容复制到目标字符串中(包括空字符)。
c++Copy Codechar src[] = "hello world";
char dest[20];
strcpy(dest, src);
上述代码将字符串 "hello world" 复制到了名为 dest
的字符数组中。
字符串连接
将两个字符串连接起来的函数是 strcat()
,该函数会将第二个字符串拼接到第一个字符串的末尾(不包括第二个字符串的开头空字符)。
c++Copy Codechar str1[20] = "hello ";
char str2[] = "world";
strcat(str1, str2); // str1 的值为 "hello world"
字符串比较
比较两个字符串是否相同的函数是 strcmp()
,该函数会比较两个字符串的每个字符进行逐一比较,如果全部相等则返回 0,否则返回非 0 值。
c++Copy Codechar str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2); // result 的值为负数,因为 'h' 的 ASCII 码小于 'w' 的
字符串查找
查找字符串中是否包含某个子串的函数是 strstr()
,如果找到则返回该子串在原字符串中的首地址,否则返回 NULL。
c++Copy Codechar str[] = "hello world";
char *substr = "world";
char *result = strstr(str, substr); // result 的值为 "world"
以上是 C++ 中常用的字符串操作,还有很多其他的字符串函数可以使用。