C++字符串操作指南:char数组与string类的初始化与使用技巧

每种编程语言,除了有 int、float、long 这些最为基本的数据类型之外,字符和字符串也必须是其“必备全家桶”中的一员。

C++字符串操作指南:char数组与string类的初始化与使用技巧

C++的字符串,与许多后起之秀相比,当然不能说使用起来十分方便(或许会觉得比较难用),然而它的灵活性却绝对是非常突出的。

字符串,本质上说其实就是“一串字符”,也就是字符数组。

字符串的初始化

char 数组 charr1,其大小为 10,内容为 "android"。
定义了一个字符数组 charr2,其大小为 20,并且初始化为 {"hello"};这是在 C++ 11 中的一种数组定义和初始化方式。
在 C++ 11 中,有一个字符数组 char charr2[20],其初始值被设定为 "jaguar"。
std::string str1 的值为 "morgan"。
string str2 = {"morgan"};
在 C++ 11 中,有一个字符串 str3,其内容为 "morgan"。

我们能够通过两种途径来声明字符串类型。其一为 char 数组;其二为 std 标准库中的 string 类。

其实上面的char数组,等价于下面的形式:

定义了一个字符数组 char charr1[10],其中包含字符 'a'、'n'、'd'、'r'、'o'、'i'、'd' 以及字符串结束标志 '\0',后面还有两个 '\0' 填充。

数组本质上其实是指针,所以在 C++中,会用 char 数组的'\0'元素来表示字符串的结束。

char 数组需要明确指定其长度。与之相比,string 则无需如此麻烦。

字符串的相关操作

1.获取字符串长度

获取字符数组 charr1 的长度,通过调用库函数 strlen() 来实现,将其长度赋值给变量 len1 。
调用 string 对象的成员函数 size() 来获取 str1 的长度,将其赋值给 len_str1 ,即 len_str1 等于 str1 的大小。

字符串连接

结果是 "androidhello"
string newStr = str1 + str2;

字符串拷贝

将 charr1 中的内容复制到 charr3 中;dst 为 charr3,src 为 charr1;执行 strcpy 操作,从 charr1 复制到 charr3
将 str1 赋值给 str4 ; 把 str1 复制到 str4 中 ; str1 被赋值给 str4 ; str1 被复制到 str4 里 ; 让 str1 赋值给 str4 ; 使 str1 复制到 str4 ; 把 str1 的值赋给 str4 ; 让 str1 的内容复制到 str4 ; 使 str1 的数据复制到 str4 ; str1 的值被赋给 str4 ; str1 的内容被复制到 str4 ; str1 的数据被复制到 str4

字符串的IO操作

通常我们有从命令行输入字符串的需求。那么,让我们来看一看 char 数组是如何实现的,以及 string 对象又是怎样实现的呢?

char name[20];
cin >> name 这种方式存在陷阱,接下来将展开进行说明。
cin.getline(name, 20);
string sName;
getline(cin, sName);
cin >> sName;

查找子字符串:find

函数原型:
查找指定字符串 str,从指定位置 pos(默认为 0)开始进行查找,返回找到的位置类型 size_type

使用string替代char数组

char 数组存在不少缺点。C++建议用 string 来替代 char 数组。主要原因包含以下一些方面:

char site[10] = "house";
将"site"与"is white in DC."进行拼接;拼接后的长度若大于 10,就会覆盖相邻的内存。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

83阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读