网站首页 > 教程分享 正文
每种编程语言,除了int,float,long这些最基本的数据类型外,字符与字符串也必须是“必备全家桶”里面的一员。
C++的字符串,对比许多后起之秀,当然说不上十分方便使用(也许会觉得难用),但其灵活性绝对是杠杠的。
字符串,本质上说其实就是“一串字符”,也就是字符数组。
字符串的初始化
char charr1[10] = "android"; //
char charr2[20] = {"hello"}; // C++ 11
char charr2[20] {"jaguar"}; // C++ 11
string str1 = "morgan"; // std::string
string str2 = {"morgan"};
string str3 {"morgan"};// C++ 11
我们可以通过两种方式来声明字符串类型,一种是char数组,一种是std标准库中的string类。
其实上面的char数组,等价于下面的形式:
char charr1[10] = {'a','n','d','r','o','i','d','\0','\0','\0'};
因为数组本质上其实也是指针,因此在C++中,在char数组用'\0'元素表示字符串的结束。
char数组必须要指定长度,相比较而言,string就不需要那么麻烦。
字符串的相关操作
1.获取字符串长度
int len1 = strlen(charr1);// 使用库函数 strlen()
int len_str1 = str1.size();//调用string对象的成员函数size();
- 字符串连接
char* newChars = strcat(charr1, charr2);// 结果是 "androidhello"
string newStr = str1 + str2;
- 字符串拷贝
strcpy(charr3, charr1);// dst, src: copy from charr1 to charr3;
string str4 = str1; // copy str1 to str4;
- 字符串的IO操作
通常我们都有从命令行输入字符串的诉求,来看看char数组、string对象分别是怎么实现的?
char name[20];
//cin >> name; 这种方法会有陷阱,后面展开说明
cin.getline(name, 20);
string sName;
getline(cin, sName);
cin >> sName;
- 查找子字符串:find
函数原型:
size_type find(const string& str, size_type pos=0) const
使用string替代char数组
char数组其实有不少缺点,C++建议使用string替代char数组,主要原因有以下几点:
- char数组声明时必须指定长度,如果字符串太短则会浪费空间,太长则无法容纳。string无此问题。
- string更安全:char数组本质是一个指针,一些字符串操作可能会覆盖不相干的内存区域。
char site[10] = "house";
strcat(site, "is white in DC."); //拼接后长度大于10,将会覆盖相邻的内存
- char数组依赖'\0'作为字符串的结束符。
猜你喜欢
- 2024-10-25 StringUtils字符串分割转数组(string字符串转化数组)
- 2024-10-25 Python的数组、元组、字符串(python 数组字符串)
- 2024-10-25 嵌入式开发-C语言-数组和字符串(c语言字符数组和字符串数组)
- 2024-10-25 c#入门教程(二)数据结构之数组(c# 数据结构)
- 2024-10-25 Java数组(java数组转成list)
- 2024-10-25 熟悉 Shell脚本 - 数组(shell数组的用法)
- 2024-10-25 JavaScript数组方法以及字符串方法的多种功能
- 2024-10-25 面试官:如何用JavaScript实现字符串数组模糊搜索?
- 2024-10-25 C语言字符数组,与字符是什么关系?
- 2024-10-25 知识分享:C语言知识干货系列——数组篇
你 发表评论:
欢迎- 最近发表
-
- IT之家学院:使用PIN或密码审批管理员权限
- Yarn 安装的时候提示错误 error:0308010C:digital envelope routines
- Windows常用的一些CMD运行命令(windows常见的命令)
- 电脑忘记开机密码10秒解决(戴尔电脑忘记开机密码10秒解决)
- 如何下载Windows 10聚焦提供的锁屏壁纸
- Windows CMD 命令大全:简单粗暴收藏!
- 系统小技巧:解决CHKDSK只读模式问题
- Windows的cmd都有哪些奇技淫巧?这22个CMD命令记得收藏起来!
- windows错误代码0x80072EE2?win10系统更新错误问题的处理方法
- Windows 10技术预览版快捷键方式汇总
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)