当前位置: 首页 > news >正文

【C++程序设计】——利用数组处理批量数据(二)

在这里插入图片描述


👨‍💻个人主页:@开发者-削好皮的Pineapple!

👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 削好皮的Pineapple! 原创

👨‍💻 收录于专栏:C++程序设计


请添加图片描述

请添加图片描述

文章目录

    • ⭐前言⭐
    • 🎶一、字符数组
    • 🎶二、字符串类与字符变量
        • 结束语🥇


⭐前言⭐

用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。字符数组具有数组的共同属性。由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数,因此有必要专门介绍字符串和字符数组。


🎶一、字符数组


(一)定义和初始化字符数组
定义字符数组初始化和前面介绍的方法类似,以下再例举一些例子。

//第一种赋值方式 
char c[10];
c[0]='I';c[1]=' '; c[2]='a';c[3]='m'; c[4]='j';c[5]=' '; c[6]='l';c[7]=' '; c[8]='h';c[9]='x'; 
//第二种赋值方式 
c[10]={'I',' ','a','m','j',' ','l',' ',' ','h','x'}; 
//第三种赋值方式 
c[]={'I',' ','a','m','j',' ','l',' ',' ','h','x'}; 

(二)字符数组的赋值与引用
需要注意的是:只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值
举例说明:

char c[5];
c=['C','h','i','n','a'];//错误
c[0]='C';c[1]='h';c[2]='i';c[3]='n';c[4]='a';//正确

🌰:设计和输出一个钻石图形。

#include<iostream>
using namespace std;
int main()
{char diamond[5][5]={{' ',' ','*',' ',' '},{' ','*',' ','*',' '},{'*',' ',' ',' ','*'},{' ','*',' ','*',' '},{' ',' ','*',' ',' '}};int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)cout<<diamond[i][j];cout<<endl;}return 0;}

运行结果如图:
在这里插入图片描述

(三)字符串和字符串结束标志
C++规定了一个“字符串结束标志符”,以字符‘\0’代表。遇到字符‘\0’就表示字符串到此结束,由它前面的字符串组成有效字符串
在程序中往往依靠检测‘\0’的位置来预判字符串是否结束,而不是根据数组的长度来决定字符串的长度。
我们可以用字无创产量来初始化字符数组,例如:

char str[12]={'I',' ','a','m',' ','h','a','p','p','y',};//可以写成
char str[]={"I am happy"}; 
char str[]="I am happy";

⚠️注意:数组str的长度不是十而是11因为字符串产量的最后由系统加上了一个‘/0’。
(四)字符数组的输入输出
1.字符数组的输入输出字符数组的输入输出可以有两种方法:

  • (1)逐个字符输入输出。如例5.9。
  • (2)将整个字符串一次输入或输出。例如有以下程序段:
char str[20];
cin >> str;
//用字符数组名输入字符串
cout << str;
//用字符数组名输出字符串

请注意:
(1)输出的字符不包括结束符’\0’。
(2)输出字符串时,cout流中用字符数组名,而不是数组元素名。如

cout << str;//用字符数组名,输出一个字符串
cout <<str[4];//用数组元素名,输出一个字符

(3)如果数组长度大于字符串实际长度,输出遇’\0’结束。

char str[10]="China";
cout << str;

只输出”China”5个字符,而不是输出10个字符。这就是用字符串结束标志的好处。
(4)如果一个字符数组中包含一个以上’\0’,则遇第1个’\0’时输出就结束。
(5)用cin从键盘向计算机输入一个字符串时,从键盘输入的字符串应短于已定义的字符数组的长度。
(五)使用字符串处理函数对字符串进行操作
1.字符串连接函数strcat (string catenate)
strcat(char[],const char[])
例如:

char str1[10]="I am";
char str2[]="beautiful girl!"
cout<<strcat(str1,str2);

2.字符串复制函数strcpy (string copy)
strcpy(char[],const char[])

char str1[10],str2[]="China";
strcmp(str1,str2);

它的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。
执行后,str2中的五个字符China和/0共六个字符复制到数组str1中。
3.字符串比较函数strcmp (string compare)
strcmp(char[],const char[])

4.字符串长度函数strlen(string length)
strclen(char[],const char[])
(六)字符数组应用


🎶二、字符串类与字符变量

(一)字符串变量的定义和引用
(二)字符串变量的运算
(三)字符串数组
(四)字符串运用


请添加图片描述

结束语🥇

以上就是C++程序设计
持续更新C++程序设计教程,欢迎大家订阅系列专栏🔥C++程序设计你们的支持!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 前端低代码必备:FrontendBlocks 4.0版本重磅发布,助力Uniapp-X原生APP开发
  • ChatGPT能代替网络作家吗?
  • 主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件
  • 深入理解接口测试:实用指南与最佳实践(一) 环境安装
  • Vue学习指南
  • 洛谷 P1347 排序(福建省历届夏令营)(图论:拓扑排序)
  • 暂存篇:高频面试题基本总结回顾(含笔试高频算法整理)
  • windows中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换(保姆级教程,值得收藏)
  • Spring-创建bean
  • 谷粒商城实战笔记-122~124-全文检索-ElasticSearch-分词
  • JVM—虚拟机类加载器
  • 机器学习练手(三):基于决策树的iris 多分类和波士顿房价预测
  • 华为的流程体系
  • 【大模型】【面试】独家总结表格
  • ISA95-Part8-错误处理的设计与集成
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 2017-09-12 前端日报
  • 3.7、@ResponseBody 和 @RestController
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Javascript编码规范
  • java正则表式的使用
  • magento2项目上线注意事项
  • Rancher如何对接Ceph-RBD块存储
  • sublime配置文件
  • Travix是如何部署应用程序到Kubernetes上的
  • 基于HAProxy的高性能缓存服务器nuster
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端面试之CSS3新特性
  • 嵌入式文件系统
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • #### go map 底层结构 ####
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #pragma multi_compile #pragma shader_feature
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (c语言)strcpy函数用法
  • (js)循环条件满足时终止循环
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (转)程序员技术练级攻略
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .DFS.
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 材料检测系统崩溃分析
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 服务 ServiceController
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET企业级应用架构设计系列之开场白
  • .NET学习教程二——.net基础定义+VS常用设置