C++基础22 字符串与字符数组及其相关操作

news2024/10/6 18:15:56

这是《C++算法宝典》C++基础篇的第22节文章啦~

如果你之前没有太多C++基础,请点击👉C++基础,如果你C++语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏:数据结构啦

目录

📕什么是字符类型?

🖊训练:打印字母表

🖊打印字母表参考代码

📕字符串定义与初始化

📕字符串与字符的区别

🖊训练:输出两个单词

🖊输出两个单词参考代码

📕字符数组的概念

📕字符数组的定义

📕字符数组的赋值

📕字符串常用函数

🧠①gets函数

🧠②strlen函数

🖊训练:统计数字个数

🖊统计数字个数解析

🖊统计数字个数主体代码


什么是字符类型?

字符类型为由一个字符组成的字符常量或字符变量。

字符变量定义:

char 字符变量;

字符类型是一个有序类型, 字符的大小顺序按其ASCⅡ代码的大小而定。

训练:打印字母表

按字母表顺序和逆序每隔一个字母打印。

【输出描述】输出26个字母,从a开始隔一个字母打印下一个字母,如,a打印之后打印c,一直到最后一个字母,再逆序输出下一个字母,每两个字母之间空一个格

【样例输出】

a  c  e  g  i  k  m  o  q  s  u  w  y z  x  r  v  t  p  n  l  j  h  f  d  b

打印字母表参考代码

#include<iostream>
using namespace std;
int main()
{
    for (char i='a';i<='z';i+=2)
    cout<<" "<<i;
    cout<<endl;
    for (char i='z'; i>='a'; i-=2)
        cout<<" "<<i;
    return 0;
}

字符串定义与初始化

主要有以下两种定义方式:

  string s1;  //定义一个字符串变量s1

  string s2 = "Hello world!";  //定义s2并初始化为字符串常"Hello world!"

字符串与字符的区别

注意:\0的ACSII码为0

训练:输出两个单词

输入两个单词,用空格隔开,然后分两行分别输出这两个单词

【输入描述】两个英文单词并用空格隔开

【输出描述】输入的两个单词换行输出

【样例输入】

dream maker

【样例输出】

dream
maker

输出两个单词参考代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s1,s2;
    cin>>s1>>s2;
    cout<<s1<<endl<<s2;
    return 0;
}

字符数组的概念

字符数组是指元素为字符的数组。

字符数组是用来存放字符序列或字符串的。

字符数组也有一维和二维之分。

字符数组的定义

字符数组定义格式同于一般数组,所不同的是数组类型是字符型,第一个元素同样是从ch1[0]开始,而不是ch1[1]。具体格式如下:

[存储类型] char 数组名[常量表达式1]…

例如:

char ch1[5]; //数组ch1是一个具有5个字符元素的一维字符数组

char ch2[3][5]; //数组ch2是一个具有15个字符元素的二维字符数组

字符数组的赋值

字符数组赋值类似于一维数组,赋值分为数组的初始化和数组元素的赋值。初始化的方式有用字符初始化和用字符串初始化两种,也有用初始值表进行初始化的。

①用字符初始化数组

例如:

char chr1[5]={'a','b','c','d','e'};

说明:初始值表中的每个数据项是一个字符,用字符给数组chr1的各个元素初始化。

②用字符串初始化数组

例如:

char chr2[5]="abcd";

说明:字符串的长度应小于字符数组的大小。

③数组元素赋值例如:

char chr[3];
chr[0]='a';chr[1]='b';chr[2]='c';

字符串常用函数

①gets函数

格式:gets(字符串名称)

说明:使用gets只能输入一个字符串,从光标读到换行符为止。

例如:gets(s1);输入“Hello World”,以换行结束,s1获取的结果是Hello World。

②strlen函数

说明:求字符串的长度,如a=strlen(a),求字符串a的长度

训练:统计数字个数

输入一行字符,统计出其中数字字符的个数。

【输入描述】一行字符串,总长度不超过255。

【输出描述】输出为1行,输出字符串里面数字字符的个数。

【样例输入】

Peking University is set up at 1898.

【样例输出】

4

统计数字个数解析

1.使用字符串引入cstring头文件,即:

#include <cstring>

2.输入字符串使用gets函数,若字符串名称为s,则:

gets(s)

3.想要求统计数字字符的个数,需要遍历字符串,即:

for(i=0;i<len;i++)
{
    if(s[i]>='0'&&s[i]<='9')
    n++;   //n表示数字字符的数量
}

统计数字个数主体代码

int n=0,i,len=0;
char s[256];
gets(s);
len=strlen(s);
for(i=0;i<len;i++)
{
   if(s[i]>='0'&&s[i]<='9')
   n++;
}
cout << n;

从入门到算法,再到数据结构,查看全部文章请点击此处​​​​​icon-default.png?t=N7T8http://www.bigbigli.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1898278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

野指针的概念 如果规避野指针

目录 野指针的概念 有关野指针的代码 如何规避野指针 野指针的概念 野指针就是指针指向的位置是不可知的&#xff08;随机的&#xff0c;不正确的&#xff0c;没有明确限制的&#xff09; 有关野指针的代码 指针未初始化&#xff1a; #include<stdio.h> int main…

【全网最全ABC三题完整版】2024年APMCM第十四届亚太地区大学生数学建模竞赛(中文赛项)完整思路解析+代码+论文

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

【fastadmin开发实战】经营数据自动识别录入

项目场景描述&#xff1a;每日录入各个门店的员工经营数据&#xff0c;直接从微信复制报数、系统识别录入。 解决方案&#xff1a;各个门店按照固定的汇报模板进行汇报&#xff08;如福田店有员工1、2、3、4、5号员工&#xff0c;每个员工按模板报数&#xff09; 例如&#xf…

FTP、http 、tcp

HTTP VS FTP HTTP &#xff1a;HyperText Transfer Protocol 超文本传输协议&#xff0c;是基于TCP协议 FTP&#xff1a; File Transfer Protocol 文件传输协议&#xff0c; 基于TCP协议&#xff0c; 基于UDP协议的FTP 叫做 TFTP HTTP 协议 通过一个SOCKET连接传输依次会话数…

《安全行业大模型技术应用态势发展报告(2024)》

人工智能技术快速迭代发展&#xff0c;大模型应用场景不断拓展&#xff0c;随着安全行业对人工智能技术的应用程度日益加深&#xff0c;大模型在网络安全领域的应用潜力和挑战逐渐显现。安全行业大模型技术的应用实践不断涌现&#xff0c;其在威胁检测、风险评估和安全运营等方…

SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断

SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断 目录 SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-LSTM特征分类预测/故障诊断&…

Patch SCN使用说明---惜分飞

软件说明 该软件是惜分飞&#xff08;https://www.xifenfei.com&#xff09;开发&#xff0c;仅用来查看和修改Oracle数据库SCN(System Change Number),主要使用在数据库因为某种原因导致无法正常启动的情况下使用该工具进行解决.特别是Oracle新版本中使用隐含参数,event,orad…

光伏电站数据采集方案(基于工业路由器部署)

​ 一、方案概述 本方案采用星创易联SR500工业路由器作为核心网关设备&#xff0c;实现对光伏电站现场数据的实时采集、安全传输和远程监控。SR500具备多接口、多功能、高可靠性等特点&#xff0c;能够满足光伏电站数据采集的各种需求。&#xff08;key-iot.com/iotlist/sr500…

昆虫学(书籍学习资料)

包括昆虫分类&#xff08;上下册&#xff09;、昆虫生态大图鉴等书籍资料。

【SpringBoot3学习 | 第1篇】SpringBoot3介绍与配置文件

文章目录 前言 一. SpringBoot3介绍1.1 SpringBoot项目创建1. 创建Maven工程2. 添加依赖(springboot父工程依赖 , web启动器依赖)3. 编写启动引导类(springboot项目运行的入口)4. 编写处理器Controller5. 启动项目 1.2 项目理解1. 依赖不需要写版本原因2. 启动器(Starter)3. Sp…

溶解氧(DO)理论指南(1)

转载自梅特勒官网资料&#xff0c;仅用于学习交流&#xff0c;侵权则删&#xff01; 溶解氧理论指南 1 溶解氧(DO)原理1.1 溶解氧和分压1.2 氧气在水中的溶解度1.3 溶解氧对生物的重要性1.4 溶解氧对工业的重要性 1 溶解氧(DO)原理 氧是宇宙中第三大常见元素&#xff0c;也是…

【C++】 解决 C++ 语言报错:Stack Overflow

文章目录 引言 栈溢出&#xff08;Stack Overflow&#xff09;是 C 编程中常见且严重的错误之一。栈溢出通常发生在程序递归调用过深或分配过大的局部变量时&#xff0c;导致栈空间耗尽。栈溢出不仅会导致程序崩溃&#xff0c;还可能引发不可预测的行为。本文将深入探讨栈溢出…

1-2 什么是自然语言处理

1-2 什么是自然语言处理 主目录点这里 自然语言处理是计算机学科、人工智能与语言学领域的一个交叉学科&#xff0c;主要研究如何让计算机能够理解、处理、生成和模拟人类语言的能力&#xff0c;从而实现与人类进行自然语言对话的能力。 如上图&#xff0c;你好通过自然语言处…

2024年7月6日 十二生肖 今日运势

小运播报&#xff1a;2024年7月6日&#xff0c;星期六&#xff0c;农历六月初一 &#xff08;甲辰年庚午月辛未日&#xff09;&#xff0c;法定节假日。 红榜生肖&#xff1a;猪、马、兔 需要注意&#xff1a;狗、鼠、牛 喜神方位&#xff1a;西南方 财神方位&#xff1a;正…

初学Spring之静态代理模式

代理模式&#xff08;不改变业务原有功能&#xff09;是 Spring AOP 的底层&#xff0c;分为静态代理、动态代理 静态代理&#xff1a; 抽象角色&#xff1a;一般会使用接口或抽象类来解决 真实角色&#xff1a;被代理的角色&#xff08;房东&#xff09; 代理角色&#xf…

uniapp中实现跳转链接到游览器(安卓-h5)

uniapp中实现跳转链接到游览器&#xff08;安卓-h5&#xff09; 项目中需要做到跳转到外部链接&#xff0c;网上找了很多都不是很符合自己的要求&#xff0c;需要编译成app后是跳转到游览器打开链接&#xff0c;编译成web是在新窗口打开链接。实现的代码如下&#xff1a; 效果&…

matlab 绘制高等数学中的二维函数示例

matlab 绘制高等数学中的二维函数示例 绘制高等数学中的二维函数示例绘制结果 绘制高等数学中的二维函数示例 clc,clear,close all; % 定义方程 eqn (x, y) (x.^2 y.^2).^3 - y.^4;% 绘制方程曲线和坐标轴 ezplot(eqn, [-2, 2, -2, 2]) hold on % 在同一图形中保持绘图% 绘…

YOLO V7项目使用

YOLO V7项目使用 根据官方论文中提供的项目地址&#xff1a;使用git clone将项目下载到本地。 https://github.com/WongKinYiu/yolov7 git clone https://github.com/WongKinYiu/yolov7 使用pycharm打开项目&#xff0c;根据官方提供的requirement.txt文件下载项目启动所需要的…

linux深度deepin基于rsync和apt-mirror同步软件源及构建本地内网源

目录 一、rsync方式二、apt-mirror方式1.安装apt-mirror2.配置apt-mirror(/etc/apt/mirror.list)3.新建存放目录开始下载 3.发布mirror站点 一、rsync方式 参考官方文档地址&#xff1a; https://www.deepin.org/index/docs/wiki/05_HOW-TO/08_%E9%95%9C%E5%83%8F%E5%8A%A0%E9%…

05.C1W4.Machine Translation and Document Search

目录 OverviewWhat you’ll be able to do!Learning Objectives Transforming word vectorsOverview of TranslationTransforming vectors Align word vectorsSolving for RFrobenius normFrobenius norm squaredGradient K nearest neighborsFinding the translationNearest n…