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

(蓝桥杯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&#xff09;字符串查找&#xff08;find&#xff09; (4)字符串替换 (5)提取子字符串…...

企业物流管理数据仓库建设的全面指南

文章目录 一、物流管理目标二、总体要求三、数据分层和数据构成&#xff08;1&#xff09;数据分层&#xff08;2&#xff09;数据构成 四、数据存储五、数据建模和数据模型&#xff08;1&#xff09;数据建模&#xff08;2&#xff09;数据模型 六、总结 在企业物流管理中&…...

数据采集-Kepware 安装证书异常处理

这里写目录标题 一、 问题描述二、原因分析三、处理方案3.1 1.执行根证书的更新3.2 安装KepServerEx 资源 一、 问题描述 在进行KepServerEx进行安装的情况下&#xff0c;出现了如下的报错&#xff1a; The installer was unable to find required root certificates ,please …...

ubuntu禁止自动更新设置

背景概述 从CentOS变更到uBuntu或多或少会遇到一些坑&#xff0c;今天分享一个。 在Ubuntu系统中&#xff0c;自动更新是一个既方便又引发争议的功能。它可以帮助用户保持系统的最新状态&#xff0c;但有时也会因为自动更新而导致系统不稳定或不兼容。 Ubuntu系统的自动更新主…...

Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串

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

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

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

unity 三维数学 ,角度 弧度计算

弧度 角度*π/180...

Java基础4-控制流程

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

面试题分享11月1日

1、过滤器和拦截器的区别 过滤器是基于spring的 拦截器是基于Java Web的 2、session 和 cookie 的区别、关系 cookie session 存储位置 保存在浏览器 &#xff08;客户端&#xff09; 保存在服务器 存储数据大小 限制大小&#xff0c;存储数据约为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 版本镜像&#xff1a;https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server ClickHouse 21.8.13.6 docker 版本镜像&#xff1a;https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.…...

车载通信架构 --- PNC、UB与信号的关系

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

智慧农业云平台:大数据赋能现代农业的未来

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

【python】OpenCV—Tracking(10.4)—Centroid

文章目录 1、任务描述2、人脸检测模型3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于质心实现多目标&#xff08;以人脸为例&#xff09;跟踪 人脸检测采用深度学习的方法 核心步骤&#xff1a; 步骤#1&#xff1a;接受边界框坐标并计算质心 步骤#2&…...

为什么TCP(TIME_WAIT)2倍MSL

为什么TCP&#xff08;TIME_WAIT&#xff09;2倍MSL 一、TCP关闭连接的四次挥手流程进入TIME_WAIT 二、TIME_WAIT状态的意义1. 确保ACK报文到达对方2. 防止旧报文干扰新连接 三、为什么是2倍MSL四、TIME_WAIT的图解五、TIME_WAIT在实际应用中的影响总结 在TCP连接的关闭过程中&…...

jieba-fenci 05 结巴分词之简单聊一聊

拓展阅读 DFA 算法详解 为了便于大家学习&#xff0c;项目开源地址如下&#xff0c;欢迎 forkstar 鼓励一下老马~ 敏感词 sensitive-word 分词 segment 分词系列专题 jieba-fenci 01 结巴分词原理讲解 segment jieba-fenci 02 结巴分词原理讲解之数据归一化 segment jieba…...

Hadoop期末复习(完整版)

前言&#xff08;全部为语雀导出&#xff0c;个人所写&#xff0c;仅用于学习&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 复习之前我们要有目的性&#xff0c;明确考什么&#xff0c;不考什么。 对于hadoop来说&#xff0c;首先理论方面是跑不掉的&#x…...

Python篮球王子

系列文章 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...

分享一些在部署k8s集群时遇到的问题

目录 一、k8s拉取镜像失败&#xff0c;多半是docker镜像源失效了&#xff0c;需要经常更新 1.编辑该配置文件&#xff1a; 2.重启服务器&#xff1a; 二、kubectl get nodes时出现&#xff1a;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 使用案…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...