当前位置: 首页 > 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 使用案…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...