C++字符串数组

C++字符串数组转载文章 C 提供了一种新的数据类型 字符串类型 string 类型 在使用方法上 它和 char int 类型一样 可以用来定义变量 这就是字符串变量 用一个名字代表一个字符序列 实际上 string 并不是 C 语言本身具有的基本类型 它是在 C 标准库中声明的一个字符串类 用这种类可以定义对象 每一个字符串变量都是 string 类的一个对象 一 字符串变量的定义和引用 1 定义字

一、字符串变量的定义和引用

 

二、字符串变量的运算

在上一节中可以看到: 在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat(连接)、strcmp(比较)、strcpy(复制),而对string类对象,可以不用这些函数,而直接用简单的运算符。

 

  1. 字符串复制用赋值号
    string1=string2;
    其作用与“strcpy(string1,string2);”相同。




  2. 字符串连接用加号
    string string1=″C++″; //定义string1并赋初值
    string string2=″Language″;//定义string2并赋初值
    string1=string1 + string2;//连接string1和string2
    连接后string1为″C++ Language″。








  3. 字符串比较直接用关系运算符
    可以直接用 ==(等于)、>(大于)、<(小于)、!=(不等于)、>=(大于或等于)、<=(小于或等于)等关系运算符来进行字符串的比较。
    使用这些运算符比使用5.5.5节中介绍的字符串函数直观而方便。




 

三、字符串数组

 

C++字符串数组
图5.11

  1. 在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。
  2. 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度就可能发生变化。
  3. 在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。
  4. 每一个字符串元素中只包含字符串本身的字符而不包括′\0′。

 

记一次自己的坑:

 vector 
  
    AllFileName;//记录目录下所有文件的名称 for (int i = 0; i < AllFileName.size(); i++) { for (int j = 0; j < AllFileName[i].length(); j++) { cout << AllFileName[i][j]; } cout << endl; } 
  

C++字符串数组

C++字符串数组

 

 

 

在定义字符串数组时怎样给数组分配存储空间呢?实际上,编译系统为每一个字符串变量分配4个字节,在这个存储单元中,并不是直接存放字符串本身,而是存放字符串的地址。在本例中,就是把字符串″Zhang″的地址存放在name[0],把字符串″Li″ 的地址存放在name[1],把字符串″Fun″的地址存放在name[2]……图5.11只是一个示意图。在字符串变量中存放的是字符串的指针(字符串的地址)。

 

一、字符串连接函数 strcat

C++字符串数组
图5.10

二、字符串复制函数strcpy

  1. 在调用strcpy函数时,第一个参数必须是数组名(如str1),第二个参数可以是字符数组名,也可以是一个字符串常量。
  2. 可以用strcpy函数将一个字符串中前若干个字符复制到字符数组中去。
  3. 只能通过调用strcpy函数来实现将一个字符串赋给一个字符数组,而不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。

 

三、字符串比较函数strcmp

 

  1. 如果字符串1=字符串2,函数值为0。
  2. 如果字符串1>字符串2,函数值为一正整数。
  3. 如果字符串1
    <字符串2,函数值为一负整数。< li="">

 

四、字符串长度函数strlen

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

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

(0)
上一篇 2026年3月18日 下午7:03
下一篇 2026年3月18日 下午7:04


相关推荐

  • idea文档注释设置_eclipse添加方法注释模板

    idea文档注释设置_eclipse添加方法注释模板IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。这里设置的注释模板采用Eclipse的格式,下面先贴出Eclipse的注释模板,我们就按照这种格式来设置:类注释模板:…

    2022年10月12日
    3
  • java栈内存初始化,阿里面试官:小伙子,你给我说一下JVM对象创建与内存分配机制吧…

    java栈内存初始化,阿里面试官:小伙子,你给我说一下JVM对象创建与内存分配机制吧…内存分配机制逐步分析类加载检查:虚拟机遇到一条new指令(new关键字、对象的克隆、对象的序列化等)时,会先去检查这个指令的参数在常量池中定位到一个类的符号引用,并且这个符号引用代表的类是否应被加载过,如果没有那么就去加载该类分配内存类加载完毕后会给对象分配内存空间。对象的所需的内存大小在类加载完毕后就便可完全确认,为对象分配内存大小的空间等同于把一块确定大小的内存从java堆中划分出来。如何划分…

    2022年5月14日
    39
  • Springboot + Redis 哨兵模式

    Springboot + Redis 哨兵模式RedisSentine 是一个分布式系统 你可以在一个架构中运行多个 Sentinel 进程 progress 这些进程使用流言协议 gossipprotoc 来接收关于主服务器是否下线的信息 并使用投票协议 agreementpro 来决定是否执行自动故障迁移 以及选择哪个从服务器作为新的主服务器

    2026年3月17日
    2
  • 手把手教你安装微信开发者工具

    手把手教你安装微信开发者工具1 登录小程序后台 选择普通小程序开发者工具 2 找到左侧下载 3 选择合适自己的版本下载 我选择的是稳定版 windows64 4 安装 安装过程比较简单 不用设置什么 按照提示来就行了 下面是每一步详细截图 5 安装完成 到此 已经安装成功 可以进行小程序代码开发了

    2026年3月18日
    4
  • Nano Banana 教程:迄今最强生图模型的28个玩法合集

    Nano Banana 教程:迄今最强生图模型的28个玩法合集

    2026年3月13日
    2
  • H264 编码简介

    H264 编码简介nbsp nbsp nbsp nbsp nbsp nbsp H264 是新一代的编码标准 以高压缩高质量和支持多种网络的流媒体传输著称 在编码方面 我理解的他的理论依据是 参照一段时间内图像的统计结果表明 在相邻几幅图像画面中 一般有差别的像素只有 10 以内的点 亮度差值变化不超过 2 而色度差值的变化只有 1 以内 所以对于一段变化不大图像画面 我们可以先编码出一个完整的图像帧 A 随后的 B 帧就不编码全

    2026年3月16日
    3

发表回复

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

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