头文件cstring、string、string.h的区别「建议收藏」

头文件cstring、string、string.h的区别「建议收藏」头文件cstring、string、string.h的区别<string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进行+、=、+=、>等运算。std::string类实际上是STL模板类std::basic_string的具体化。#include<string>usingnamespacestd;strings;<cstring>是C标准库头文件<strin

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

头文件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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197483.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • .NET WinForm中使用Timer定时更新ProgressBar的进度「建议收藏」

    .NET WinForm中使用Timer定时更新ProgressBar的进度

    2022年3月11日
    41
  • pycharm怎么配置pygame环境—–pycharm怎么配置环境[通俗易懂]

    pycharm怎么配置pygame环境—–pycharm怎么配置环境[通俗易懂]最近学习python要做一个飞机大战的项目,需要配置importpygame新建项目–importpygame,结果是这样滴没有安装这个模块,当然import不了啦,怎么用pycharm下载安装pygame呢?首先选择setting–projectinerpreter,设置项目编译器。大红圈是已经安装过的模块,点击旁边小圈里的小加号是添加新模块,我们轻轻的点一下…

    2022年8月26日
    4
  • python可以自动回收垃圾吗_python多线程实现

    python可以自动回收垃圾吗_python多线程实现前言现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再像c,c++里,需要用户自己管理内存。自己管理内存及其自由,可以任意申请内存,但这如同一把双刃剑,可能会造成内存泄漏,空指针等bug

    2022年7月30日
    19
  • sas ods html的作用是什么意思,SAS ODS「建议收藏」

    sas ods html的作用是什么意思,SAS ODS「建议收藏」SAS程序的输出可以转换为更加用户友好的形式,如.html或PDF。这是通过使用SAS中提供的ODS语句来完成的。ODS代表输出传递系统。它主要用于格式化SAS程序的输出数据到好的报告,这是很好看的和理解。这也有助于与其他平台和软件共享输出。它还可以将多个PROC语句的结果合并在一个文件中。语法在SAS中使用ODS语句的基本语法是:ODSoutputtypePATHpathname…

    2022年9月26日
    5
  • Java XML解析工具类

    Java XML解析工具类JavaXML解析工具类Java解析XML的方式有很多,这里不一一说明了,利用三方jar包,实现了一个XML工具类本身是有个需求,讲三方公司的XML请求文件中的Response里的属性赋值成java对象,没做完不需要了,只做到了解析,后续本来想利用解析出来的key进行遍历,利用FTL模板生成Java文件,有这个需求的小伙伴可以延续这个工具类。1.看看XML<?xmlversion=”1.0″encoding=”utf-8″?><!–每个协议有Request或Resp

    2022年7月21日
    14
  • 国内教育邮箱有什么用_学校教育网邮箱

    国内教育邮箱有什么用_学校教育网邮箱教育优惠,是一项针对于在校大学生和教职员工推出的特殊优惠活动。一些公司会将旗下产品或服务以一定的折扣,甚至免费提供给高校师生。想想自己上大学的时候啥都不知道,毕业后才发现浪费了这么多优秀的资源.如果你还是一名在校大学生,那么就不要错过以下的这些教育优惠了,不然真的是失去后才会追悔莫及.申请教育优惠一般有一个前提,那就是要有一个学校提供的「校园邮箱」.在国内,也就是@xxx.edu.cn结尾……

    2022年9月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号