C++定义和初始化string对象实例详解

 更新时间:2022年12月07日 09:02:34   作者:老边  
这篇文章主要为大家介绍了C++定义和初始化string对象实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

在c++当中,标准类型string来代表可变长的字符串序列,使用string需要加载string 头文件,而方法定义在命名空间std当中,所以使用的基本结构:

#include <string>
int main(){
   using std::string;
   string str1 = "hello world";
   return 0;
}

当然也可以结合之前的输入输出部分:

#include <iostream>
#include <string>
int main(){
   using namespace std;
   string str1 = "hello world";
   cout << str1 << endl;
   return 0;
}

这里可以看出,std命名空间包含了iostream头文件当中的cout和endl,也包含了string 头文件当中的string

定义string

和其他的变成语言的思路类似,标准类型string可以定义string类型的字符串(嘿嘿嘿,好像一句废话),常见的定义方式如下:

string str1; //声明一个空的字符串
string str2 = str1; //声明一个str2,它是str1的副本
string str3 = "hello world"; //上面做过的一种写法,str3是字符串字面值的副本
string str4(10,'b'); //str4的内容是 bbbbbbbbb ,这里要注意第二给参数需要是字符而不是字符串

这里聊到了一个概念叫做字面值,其实就是字面值常量,形如38这样一个一望而知的值被称为字面值常量,每个字面值常量都对应一种数据类型,我们上面聊的就是string类型的字面值常量,但是需要细致区分的是字符和字符串字面值:

'a' //字符字面值
"hello world" //字符串字面值

除了肉眼可见的长度和引号(尽管看得见,必须要仔细)的区别外,编译器会在每个字符串后面添加一个空字符'\0',因此字符串字面值的长度要比肉眼所见的+1

初始化string

当对象创建是获得了一个特定的值,我们就可以说这个值被初始化了,通过string类型我们来看一下初始化的分类:

全面初始化

使用花括号包围的初始化被称为全面初始化,这个是c++11的新特性,比如:

string str4(10,'b'); 

默认初始化

定义变量的时候没有指定初始的值,这种也是初始化,被称为默认初始化,变量的值的类型由变量的类型来决定,比如:

string str1;

拷贝初始化

使用等于号进行初始化就是拷贝初始化,因为实际上是编译器把等号右侧的初始值拷贝到等号左侧的新创建的对象当中,(如果基于面向对象理解:直接初始化实际上是要求编译器选择参数最匹配的一般构造函数)比如:

string str2 = str1;
string str3 = "hello world"; 

直接初始化

嘿嘿嘿,域拷贝初始化相反,不使用等号进行初始化(其实就是不进行赋值拷贝动作),就是直接初始化,比如:

string str4(10,'b');

以上就是C++定义和初始化string对象实例详解的详细内容,更多关于C++定义初始化string对象的资料请关注脚本之家其它相关文章!

相关文章

  • C++ 中回文数判断简单实例

    C++ 中回文数判断简单实例

    这篇文章主要介绍了C++ 中回文数判断简单实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • 基于MFC和OpenCV实现角点检测

    基于MFC和OpenCV实现角点检测

    这篇文章主要为大家详细介绍了基于MFC和OpenCV实现角点检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C语言中的文件操作详解

    C语言中的文件操作详解

    这篇文章主要介绍了C语言中的文件操作详解,使用文件可以将数据直接存放到电脑的硬盘上,做到了数据的持久化
    2022-07-07
  • OpenCV 图像金字塔的实现示例

    OpenCV 图像金字塔的实现示例

    本文将结合实例代码,介绍OpenCV 图像金字塔,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • C语言的变量与常量 字符字符串与转义字符详解

    C语言的变量与常量 字符字符串与转义字符详解

    这篇文章主要介绍了详解C语言的变量与常量 字符字符串与转义字符,包括其之间的区别是C语言入门学习中的基础知识,需要的朋友可以参考下
    2021-10-10
  • C语言实现简易停车场管理系统

    C语言实现简易停车场管理系统

    这篇文章主要为大家详细介绍了C语言实现简易停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C++ 中strcpy标准写法实例详解

    C++ 中strcpy标准写法实例详解

    这篇文章主要介绍了C++ 中strcpy标准写法实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C语言程序的编译与预处理基础定义讲解

    C语言程序的编译与预处理基础定义讲解

    在ANSI C的任意一种实现中,存在2中不同的环境。第一种是翻译环境,负责将源代码转换成可执行的机器指令;第二种是执行环境,用于实际执行代码。一个程序从源代码到可执行程序一共会经历四个过程,分别是预处理、编译、汇编、链接,本篇让我们来了解编译与预处理
    2022-04-04
  • 基于Linux系统调用--getrlimit()与setrlimit()函数的方法

    基于Linux系统调用--getrlimit()与setrlimit()函数的方法

    本篇文章是对在Linux系统中调用getrlimit()与setrlimit()函数的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++中LibCurl库使用流程及配置详解

    C++中LibCurl库使用流程及配置详解

    libcurl是一个跨平台的开源网络传输库,它支持许多协议,包括HTTP、HTTPS、FTP、FTPS以及许多其他协议和文件传输方式,本文给大家详细介绍了C++中LibCurl库使用流程及配置,需要的朋友可以参考下
    2024-02-02

最新评论