头文件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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android开发之startActivityForResult过时的替代方案

    Android开发之startActivityForResult过时的替代方案如上图所示:在api29中提示已过时,官方给出的替代方案是上面第二个红框的方法registerForActivityResult该怎么用呢?先看kotlin版本的写法:privatevalstartActivity=registerForActivityResult(ActivityResultContracts.StartActivityForResult()){//此处是跳转的result回调方法if..

    2022年7月11日
    24
  • 在idea中配置 gitignore忽略文件(一)

    在idea中配置 gitignore忽略文件(一)针对一些不用每次提交的文件 设置不让其提交到 git 的本地仓库中 先在 idea 中安装 gitignore 插件点击 File gt Settings 选择 plugs 在右边搜索 ignore 点击 Install 安装完成后就可以愉快的使用了 不过在此之前得重启 IDEA 现在项目中生成模板在项目上右键 gt New gt ignorefile gt gitign

    2026年1月30日
    1
  • OpenCv中 width 和 widthStep的区别「建议收藏」

    OpenCv中 width 和 widthStep的区别「建议收藏」前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空着。也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。

    2022年6月5日
    28
  • 基本粒子群算法小结及算法实例(附Matlab代码)

    基本粒子群算法小结及算法实例(附Matlab代码)1、基本粒子群算法假设在一个D维的目标搜索空间中,有N个粒子组成一个群落,其中第i个粒子表示为一个D维的向量:$$X_i=(x_{i1},x_{i2},\cdots,x_{iD}),\quadi=1,2,\cdots,N\quad\text{(1)}$$第i个粒子的“飞行”速度也是一个D维的向量,记为:$$V_i=(v_{i1},v_{i2},\cdots,v_{iD}),\quadi=1,2,\cdots,N\quad\te…

    2022年5月29日
    35
  • 什么是JavaSE,写给第一次接触Java的人

    什么是JavaSE,写给第一次接触Java的人Java语法基础Java开发环境搭建Java概述Java是一门编程语言,是用来编写软件的。QQ、迅雷、淘宝、京东等等这些常用软件都可以用Java来编写。其实,Java最擅长的是编写如下类型的软件:1、互联网:电商、P2P2、企业级应用:ERP、CRM、BOS、OAJavaSE是java分类中的标准版,是刚接触java要学习的基础知识。JavaEE是java分类中的企

    2022年7月8日
    22
  • fprintf函数的用法_itoa函数

    fprintf函数的用法_itoa函数fprintf()用于文件操作#includeintfprintf(FILE*stream,constchar*format,…);fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.

    2022年10月19日
    4

发表回复

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

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