news 2026/4/11 21:14:06

C++之数据类型的扩展

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之数据类型的扩展

文章目录

  • 结构体
  • 联合体
  • 枚举
  • 布尔
  • 字符串
    • string类型字符串定义
    • 字符串拷贝
    • 字符串连接
    • 字符串比较
    • 随机访问
    • 获取字符串长度
    • 转换为C风格的字符串
    • 字符串交换
    • demo

结构体

  • C++中定义结构型变量,可以省略struct关键字
  • C++结构体中可以直接定义函数,谓之成员函数(方法)
#include<iostream>#include<cstring>using namespace std;intmain(void){structstu{intage;charname[20];voidwho(void){cout<<"我是:"<<name<<" 我今年:"<<age<<endl;}};stu s1;s1.age=21;strcpy(s1.name,"张飞");s1.who();return0;}

联合体

  • C++中定义联合体变量,可以省略union关键字
unionXX{……};XX x;//定义联合体变量直接省略union
  • 支持匿名联合
union//没有名字……};
#include<iostream>usingnamespacestd;intmain(void){union{//匿名联合intnum;charc[4];};num=0x12345678;cout<<hex<<(int)c[0]<<" "<<(int)c[1]<<endl;return0;}

枚举

  • C++中定义枚举变量,可以省略enum关键字
  • C++中枚举是独立的数据类型,不能当做整型数使用
#include<iostream>usingnamespacestd;intmain(void){enumCOLOR{RED,GREEN,BLUE};COLOR c=GREEN;//c = 2; //errorcout<<c<<endl;return0;}

布尔

  • C++中布尔(bool)是基本数据类型,专门表示逻辑值
  • 布尔类型的字面值常量:
    • true 表示逻辑真
    • false表示逻辑假
  • 布尔类型的本质: 单字节的整数,使用1表示真,0表示假
  • 任何基本类型都可以被隐式转换为布尔类型
#include<iostream>usingnamespacestd;intmain(void){boolb=true;cout<<b<<endl;cout<<boolalpha<<b<<endl;b=3+2;cout<<boolalpha<<b<<endl;return0;}

字符串

  • C++兼容C中的字符串表示方法和操作函数
  • C++专门设计了string类型表示字符串

string类型字符串定义

string s;//定义空字符串strings("hello");string s="hello";string s=string("hello");

字符串拷贝

string s1=“hello”;string s2=s1;

字符串连接

string s1=“hello”,s2=“ world”;string s3=s1+s2;//s3:hello worlds1+=s2;//s1:hello world

字符串比较

string s1=“hello”,s2=“ world”;if(s1==s2){cout<<false<<endl;}if(s1!=s2){cout<<true<<endl;}

随机访问

string s=“hello”;s[0]=“H”;//Hello

获取字符串长度

size_tsize();size_tlength();

转换为C风格的字符串

constchar*c_str();

字符串交换

voidswap(string s1,string s2);

demo

#include<iostream>#include<cstdio>usingnamespacestd;intmain(){/*定义*/string s1;//定义空字符串strings2("aaa");string s3=string("bbb");string s4="cccc";/*字符串的拷贝*/string s5=s2;// char *p5 = p2;cout<<"s5 = "<<s5<<endl;/*拼接*/s5+=s3;cout<<"s5 = "<<s5<<endl;/*字符串比较*/if(s2==s3){//strcmp(.....)cout<<"true"<<endl;}else{cout<<"false"<<endl;}/*取字符串长度*/cout<<"s5 length = "<<s5.length()<<endl;/*转换为C风格字符串*/constchar*p=s5.c_str();printf("%s\n",p);/*交换*/swap(s2,s3);cout<<"s2= "<<s2<<" s3= "<<s3<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 3:19:24

基于LSTM长短期记忆神经网络的轴承剩余寿命预测MATLAB实现

1. 研究背景 背景&#xff1a;轴承是旋转机械中的关键部件&#xff0c;其剩余寿命预测对预防故障、减少停机时间、降低维护成本具有重要意义。目标&#xff1a;利用LSTM网络对轴承的退化趋势进行建模&#xff0c;实现高精度的剩余寿命预测。2. 主要功能 加载轴承特征数据&#…

作者头像 李华
网站建设 2026/3/23 14:25:23

Linux 入门核心命令清单(工程版)

很多人学 Linux 时会陷入一个误区&#xff1a; 一上来背 100 个命令&#xff0c;结果一个都记不住。实际上&#xff0c;在真实开发中&#xff0c;15&#xff5e;25 个命令就能覆盖 80% 场景。 本文只整理真正高频、工程必会的 Linux 核心命令。一、路径与目录操作1. pwd — Pri…

作者头像 李华
网站建设 2026/3/31 13:04:38

sophnet邀请码(clawbot/openclaw)

填写邀请码可以得30余额&#xff0c;免费体验三个月&#xff0c;使用我的邀请码。 1.点开链接直达--》https://www.sophnet.com/#?codePF8GFD 2.邀请码&#xff1a;PF8GFD

作者头像 李华
网站建设 2026/4/5 4:51:17

高职数据安全与管理专业,怎么学习数据安全相关的法律法规?

高职数据安全与管理专业学习数据安全法律法规的方法数据安全法律法规的学习需要结合理论、实践和行业认证&#xff0c;以下是系统化的学习路径&#xff1a;法律法规框架梳理核心法律重点内容关联认证《网络安全法》网络运营者责任、数据分类保护、跨境数据传输规则CDA数据分析师…

作者头像 李华
网站建设 2026/4/10 19:56:36

Python基于Vue的大数据驱动的健身攻略推荐系统 django flask pycharm

收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 在健康意识日益增强的当下&#xff0c;健身已成为众多人追求高品质生活的重要组成部分。然而&#xff0c;面对海量的健身信息&#xff0c;人们往往感到无所适从&#xff0c;难以找到适合自…

作者头像 李华