头文件cstring、string、string.h的区别
头文件cstring、string、string.h的区别
<string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进行+、 =、 +=、 >等运算。std::string 类实际上是 STL 模板类 std::basic_string 的具体化。
#include<string>
using namespace std;
string s;
<cstring>是C标准库头文件<string.h>对应的C++标准库版本,包含了C风格字符串(即’\0’结尾字符数组),以及相关的一些类型和函数,例如strcmp、strchr、strstr等函数。<cstring>和<string.h>的最大区别在于,其中声明的名称都是位于std命名空间中的,而后者是全局命名空间。包含cstring之后,就可以在程序中使用C语言风格的strcpy之类的函数。
C风格字符串
C 风格字符串是一种特殊的字符数组。 该数组的最后一个字符为空字符‘\0’。这也被称为字符串结束字符,因为它告诉编译器,字符串到此结束。在代码中使用字符串字面量时,编译器将负责在它后面添加‘\0’。使用 C 语言编写的应用程序经常使用 strcpy()等字符串复制函数、strcat()等拼接函数,还经常使用 strlen()来确定字符串的长度。如果使用C风格字符串没有在字符数组末尾添加空字符,这些函数将跨越字符数组的边界。
C++字符串:使用 std::string
标准库类型strirng表示可变长的字符序列,作为标准库的一部分,string定义在命名空间std中。
string的操作 | |
---|---|
s.empty() | s为空返回true,否则返回false |
s.size() | 返回s中字符个数 |
s[n] | 返回s中第n个字符的引用,从0算起 |
s1+s2 | 返回s1与s2的连接 |
s1=s2 | 用s2的副本代替s1中原有的字符 |
s1==s2 | 判断s1与s2所含字符是否一样,大小写敏感 |
<,<=,>,>= | 利用字符在字典中的顺序进行比较,大小写敏感 |
读写string对象
- 使用标准库中的iostream读写string对象
int main(){string s;cin >> s; //将string对象读入s,遇到空白停止cout << s << endl;return 0;
}
- 使用getline读取一整行
有时我们希望能在最终得到的字符串中保留输入时的空白符,这时候应该用getline函数代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止(注意换行符也被都进来了),然后把所读的内容存入到string对象中(注意不存换行符)。
int main(){string line;getline(sin, line);cout<< line << endl;return 0;
}
头文件cstring、string、string.h的区别相关推荐
- 头文件stdio与stdlib.h的区别
头文件#include<stdio.h>与#include<stdlib.h>的区别 stdlib 头文件即standard library标准库头文件 stdlib 头文件里 ...
- c语言cstdio头文件,头文件cstdio和stdio.h的区别?
满意答案 tomvalex 推荐于 2017.11.23 采纳率:56% 等级:8 已帮助:112人 在C语言中,stdio.h 头文件是主要的. 而在后来的C++语言中,C只是C++的一个子集 ...
- string类 string.h头文件 cstring头文件区别以及读取一行字符串总结
以前一直分不清string类 string.h头文件 cstring头文件的去别,今天ce了一发才稍微弄懂了. 首先C语言中只有string.h头文件,string.h包含了一些字符数组和字符串的函 ...
- C++万能头文件#include“bits/stdc++.h”
最近在打cf时赛后翻阅别人的代码总是会发现一个陌生而奇怪的头文件#include<bits/stdc++.h> 奇怪之处就在于基本上所有的代码只要用了这个头文件就不再写其他头文件了. 百度 ...
- Visual Studio 中使用万能头文件 #include bits/stdc++.h
进行各种练习赛后,看题解代码时经常会看到这么一个陌生的头文件 #include <bits/stdc++.h> ,这个头文件是一个C++万能头文件,里面包含了程序比赛中所有可能用到的头文件 ...
- c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...
c语言从头开始(三:编译器工作原理) [[枫歌枫歌]c语言从头开始(三:编译器工作原理)]https://toutiao.com/group/6568056688174170628/?iid=1590 ...
- C++ 头文件cstring,string.h,string 三者的区别
一般一个C++的老的带".h"扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带".h"扩展名的相对应,区别除了后者的好多改进之外,还有 ...
- C++无法在头文件中定义string类数据
//头文件中不仅要包含<string>,也要加上命名空间 //.h文件 #include <string> using namespace std; //或者使用 //std: ...
- VScode找不到C++万能头文件<bits/stdc++.h>解决办法
VScode找不到C++万能头文件<bits/stdc++.h>解决办法 一.万能头文件介绍 万能头文件<bits/stdc++> 中包含了 C++中大部分头文件,在大部分做题 ...
最新文章
- Markdown here 离线下载安装
- CSS3背景线性渐变
- mysql 导入设置编码_从MySQL导出导入数据库的命令实例及设置会话字符编码
- 皮一皮:这就是我的开发水平...
- centos7安装mysql8.0简书_CentOS7安装MySQL8.0图文教程
- 关于流控器件和压控器件
- mysql存储引擎的方式_Mysql转换表存储引擎的三种方式
- 78%的iPhone用户手机没有安装过新软件
- 包容网关 Inclusive Gateway
- 计算机应用基础第十一版答案,计算机应用基础 11.doc
- Python字符串isalnum()
- PHPMailer的使用
- python卡方拟合优度检验_SPSS超详细教程:卡方拟合优度检验
- 海康,大华 RTSP取流URL格式
- Emmagee 不支持android7.0以上,社区努力中~
- 常用照片尺寸对照表,照片大小看这个表就对了
- 黑马程序员:Java基础总结----Java语言编程规范
- python程序中如何合理处理[WinError 5]拒绝访问的错误
- 魅蓝5s的android系统版本,魅蓝5s有几个版本?魅蓝5s标准版和高配版详细区别对比评测...
- 管理故事216之008-红灯与警察