(蓝桥杯C/C++)—— 编程基础
文章目录
一、C++基础格式
1.打印hello, world
2.基本数据类型
二、string
1.string简介
2.string的声明和初始化
3.string其他基本操作
(1)获取字符串长度
(2) 拼接字符串(+ 或 append)
(3)字符串查找(find)
(4)字符串替换
(5)提取子字符串(substr)
(6)字符串比较(compare)
(7)遍历string 循环枚举下标
三、输入输出
1.scanf和printf
2.cin和cout
3.取消同步流
一、C++基础格式
1.打印hello, world
#include <bits/stdc++.h> //万能头文件
using namespeace std;
int main()
{
cout << "hello, world" << endl;
printf ("hello, world");
return 0;
}
2.基本数据类型
int a = 1; //整数型
dobule b = 3.14; //浮点型(小数)
char c = 'A'; //字符型
char d[] = "hello"; //字符串
bool e = 1(true) / 0(false); //布尔类型(判断真假)
二、string
1.string简介
string是C++标准库的重要组成部分,主要用于字符串处理。
使用string库需要在头文件中包括该库 #include<string>
string与char[]不同,string实现了高度的封装,可以很方便地完成各种字符串的操作,比如拼接、截取、匹配等等。
(1)字符串管理:string封装了字符串的存储和管理。它自动处理字符串的内存分配和释放,避免了手动管理内存的麻烦。
(2) 动态大小调整:string可以根据需要自动调整字符串的大小。在添加或删除字符时,string会自动调整内部的存储容量,确保足够的空间来容纳字符串。
(3)安全性: string提供了一些方法来确保字符串的安全性。例如,它提供了越界访问检查,以避
免访问超出字符串范围的字符。
(4) 迭代器支持:string支持迭代器,可以使用迭代器遍历字符串中的字符,进行字符级别的操作。
(5)兼容性: string是C++标准库的一部分,因此在C++中广泛使用,并且与其他标准库组件和 C++语言特性兼容。
2.string的声明和初始化
#include<iosteram>
#include<string>
using namespeace std;
int main()
{
string str1; //声明并初始化空字符串
string str2 = "hello world"; //用字符串字面量用始化字符串
cout << "str1:"<<str1<<endl;
cout << "str2:"<<str2<<endl;
return 0;
}
3.string其他基本操作
(1)获取字符串长度
string str = "hello, world";
int length = str.length();//或者 int length = str.size();
cout<<"length"<<endl
(2) 拼接字符串(+ 或 append)
string str1 = a;
string str2 = b;
string result1 =str1 + str2; //使用 + 运算符
string result2 = str1.append(", ").append(str2); //使用 append 函数
cout << "result 1 " << result1 << endl;
cout << "result 1 "<< result1 << endl;
(3)字符串查找(find)
string str = "hello, world";
size_t pos = str.find("world");
if( pos != string::npos)
{
cout << "Substring found at position: " << pos endl;
}
else{
cout << "Substring not found." << endl:
}
(4)字符串替换
string str= "hello, world";
replace(7, 5, a):
cout << "Result: " << str << endl;
(5)提取子字符串(substr)
string str = "Hello, world!;
string substr=str.substr(7,5); // 提取子字符串
cout<< Substring: " << subStr << endl;
(6)字符串比较(compare)
字典序的比较方法是从小到大一个一个比较,一旦遇到不相等的字符就确定大小关系。
string str1 = "Hello”;
string str2 = "world ;
int result = str1.compare(str2);// 比较字符串
if(result == 0)
{
cout << "strings are equal." <<endl;
}
else if (result < 0)
{
cout << "strings 1 is less than String 2." <<endl;
}
else
{
cout << "strings 1 is greater than String 2." <<endl;
}
(7)遍历string
循环枚举下标
auto枚举(其中&表示取引用类型,如果对i修改将会改变原来的值)
string s = "Hello";
for(int i = 0; i < s.length(); ++ i)
cout << s[i];
cout << '\n';
for(auto i :s)
{
cout << i;
i='a'; //此处的修改无效,因为这个主是拷贝出来的,而不是引用s的
}
cout << "\n"; //此时s = "Hello"
for(auto &i : s)
{
cout << i;
i='a'; //此处修改会改变s的字符值
}
cout << '\n'; //此时s = "aaaaa"
cout << s << '\n'
三、输入输出
1.scanf和printf
int main()
{
int a, b;
scanf("%d %d",&a, &b);
printf("%d,%d\n",a,b);
return 0;
}
int main()
{
doble a, b;
scanf("%lf %lf",&a, &b);
printf("%.2lf,%.3lf\n",a,b); //自动四舍五入 (.x保留位小数)
return 0;
}
int main()
{
char c1, c2;
scanf("%c %c",&c1, &c2);
printf("%c %c",c1, c2);
return 0;
}
int main()
{
char s[10];
scanf("%s , s); //%s输入遇到空格或回车会停下
printf("%s", s);
return 0;
}
int main()
{
char s[15];
scanf("%^\n] , s); //^排除 \n回车
printf("%s", s);
return 0;
}
其中[]是一个正则表达式,表示只要不是回车就读进去。
类型 对应标识符
int %d
double %lf
char %c
char[] %s
scanf和sprintf的优势:
(1)格式化输入和输出
(2)效率高
2.cin和cout
int main()
{
char s[10]; // cin输入字符串也是遇到空格或回车就结束
cin >> s;
cout << s;
return 0;
}
3.取消同步流
由于cin和cout需要自动判断变量类型等内部原因,当数据量较大时,可能导致程序运行超时。
我们可以通过取消同步流来加速cin和cout,加速后效率相差无几。
int main()
{
ios::sync_with_stdio(e),cin.tie(e), cout.tie(e); //取消同步流
//其他操作不变
int x;cin >> x;
cout << x << '\n';
return 0;
}
相关文章:
(蓝桥杯C/C++)—— 编程基础
文章目录 一、C基础格式 1.打印hello, world 2.基本数据类型 二、string 1.string简介 2.string的声明和初始化 3.string其他基本操作 (1)获取字符串长度 (2) 拼接字符串( 或 append) (3)字符串查找(find) (4)字符串替换 (5)提取子字符串…...

企业物流管理数据仓库建设的全面指南
文章目录 一、物流管理目标二、总体要求三、数据分层和数据构成(1)数据分层(2)数据构成 四、数据存储五、数据建模和数据模型(1)数据建模(2)数据模型 六、总结 在企业物流管理中&…...

数据采集-Kepware 安装证书异常处理
这里写目录标题 一、 问题描述二、原因分析三、处理方案3.1 1.执行根证书的更新3.2 安装KepServerEx 资源 一、 问题描述 在进行KepServerEx进行安装的情况下,出现了如下的报错: The installer was unable to find required root certificates ,please …...
ubuntu禁止自动更新设置
背景概述 从CentOS变更到uBuntu或多或少会遇到一些坑,今天分享一个。 在Ubuntu系统中,自动更新是一个既方便又引发争议的功能。它可以帮助用户保持系统的最新状态,但有时也会因为自动更新而导致系统不稳定或不兼容。 Ubuntu系统的自动更新主…...

Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 长度为k的二进制子串所有取值的集合为[0, sum(k)],其中sum(k)为1 2 4 … 1 << (k - 1) 我们只需要创建一个长度为sum(k) 1的数组 f ,其中下标为 i 的元素用来标记字符串中子串…...

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...

unity 三维数学 ,角度 弧度计算
弧度 角度*π/180...

Java基础4-控制流程
控制流程 Java使用条件语句和循环结构确定控制流程。基本和C一样,但是没有goto语句,但break语句可以有标签,用于跳出内层循环。 块作用域(block) 块(即复合语句)是指由一堆花括号括起来的若干…...

面试题分享11月1日
1、过滤器和拦截器的区别 过滤器是基于spring的 拦截器是基于Java Web的 2、session 和 cookie 的区别、关系 cookie session 存储位置 保存在浏览器 (客户端) 保存在服务器 存储数据大小 限制大小,存储数据约为4KB 不限制大小&…...

【含文档】基于ssm+jsp的学科竞赛系统(含源码+数据库+lw)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了四个…...
Docker方式部署ClickHouse
Docker方式部署ClickHouse ClickHouse docker 版本镜像:https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server ClickHouse 21.8.13.6 docker 版本镜像:https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.…...

车载通信架构 --- PNC、UB与信号的关系
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

智慧农业云平台:大数据赋能现代农业的未来
近年来,随着科技的迅速发展,农业作为传统行业正面临着前所未有的变革。智慧农业,作为现代农业发展的重要方向,借助云计算、大数据、物联网等技术,正在为农业生产、管理和服务提供全新的解决方案。在这个背景下…...

【python】OpenCV—Tracking(10.4)—Centroid
文章目录 1、任务描述2、人脸检测模型3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于质心实现多目标(以人脸为例)跟踪 人脸检测采用深度学习的方法 核心步骤: 步骤#1:接受边界框坐标并计算质心 步骤#2&…...
为什么TCP(TIME_WAIT)2倍MSL
为什么TCP(TIME_WAIT)2倍MSL 一、TCP关闭连接的四次挥手流程进入TIME_WAIT 二、TIME_WAIT状态的意义1. 确保ACK报文到达对方2. 防止旧报文干扰新连接 三、为什么是2倍MSL四、TIME_WAIT的图解五、TIME_WAIT在实际应用中的影响总结 在TCP连接的关闭过程中&…...
jieba-fenci 05 结巴分词之简单聊一聊
拓展阅读 DFA 算法详解 为了便于大家学习,项目开源地址如下,欢迎 forkstar 鼓励一下老马~ 敏感词 sensitive-word 分词 segment 分词系列专题 jieba-fenci 01 结巴分词原理讲解 segment jieba-fenci 02 结巴分词原理讲解之数据归一化 segment jieba…...

Hadoop期末复习(完整版)
前言(全部为语雀导出,个人所写,仅用于学习!!!!) 复习之前我们要有目的性,明确考什么,不考什么。 对于hadoop来说,首先理论方面是跑不掉的&#x…...

Python篮球王子
系列文章 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...
分享一些在部署k8s集群时遇到的问题
目录 一、k8s拉取镜像失败,多半是docker镜像源失效了,需要经常更新 1.编辑该配置文件: 2.重启服务器: 二、kubectl get nodes时出现:The connection to the server localhost:8080 was refused - did you specify t…...

【Canal 中间件】Canal使用原理与基本组件概述
文章目录 一、canal 概述1.2 什么是 canal2.3 canal 的所有组件 二、canal 工作原理2.1 MySQL 主备复制原理2.2 canal 工作原理 三、canal.server 组件3.1 canal.server 的架构3.2 instance 模块组成部分 四、canal.client 组件4.1 类设计4.2 server/clinet 交互协议4.3 使用案…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...