头文件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对象

  1. 使用标准库中的iostream读写string对象
int main(){
    string s;
    cin >> s;	//将string对象读入s,遇到空白停止
    cout << s << endl;
	return 0;
}

  1. 使用getline读取一整行

有时我们希望能在最终得到的字符串中保留输入时的空白符,这时候应该用getline函数代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止(注意换行符也被都进来了),然后把所读的内容存入到string对象中(注意不存换行符)。

int main(){
	string line;
	getline(sin, line);
	cout<< line << endl;
	return 0;
}
  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无感

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值