嵌入式基础:Linux C语言:Day7
重点:
strlen()函数\strcpy()函数\strcat实现\strcmp()实现
数组的清空:bzero函数、memset函数
一、字符数组
<1> 概念
字符数组本质上就是一个数组,保存一个个字符,也一般用来保存字符串
字符串由多个字符组成的一个字符组,一般用“ ”括起来
<2> 定义: char 数组名[数组长度];
<3> 初始化:
单字符全部初始化
单字符部分初始化
不填数组长度的初始化
以字符串对字符数组初始化
以字符串对字符数组初始化:不加{}
二、字符串的输入输出
<1> 字符串的输出
printf()输出: printf("%s\n",字符串首地址)
puts输出: puts(字符串首地址/字符数组名)
<2> 字符串的输入
gets()输入: gets(保存输入的字符串的空间首地址/数组名)
scanf()输入
三、对字符串的相关处理函数的使用
<1> 数组清空:所谓的数组清空就是让数组中所有的成员数据全部变为0
定义数组时就初始化为0
bzero()函数
#include <strings.h>
void bzero(void *s, size_t n);
功能:实现数组的清空
参数:
s:要清空的数组首地址(数组名)
n:填写数组大小就可以
返回值:无
ex;
bzero(数组名,sizeof(数组名));
memset()函数
void *memset(void *s, int c, size_t n);
功能:将指定的内存中数据设置为指定大小,可以用于数组清空
6.2 strlen()函数计算数组的长度
#include <string.h>
size_t strlen(const char *s);
功能:计算字符串的长度,'\0'之前的字符串数量
参数:
s:要计算长度的字符串首地址(数组名)
返回值:成功会返回计算到的字符串长度
6.3 strcpy()函数实现字符串的复制
char *strcpy(char *dest, const char *src);
功能:将一个字符串复制到另一个数组空间中
参数:
dest:目标空间首地址
src:要复制的字符串的首地址
返回值:函数调用成功返回一个指向复制后字符串的首地址
ex:
char buf[]="hello world";
char buf1[20]={0};
strcpy(buf1,buf);//将buf中保存的字符串复制到buf1中
char *strncpy(char *dest, const char *src, size_t n);
功能:实现复制指定大小的字符串
参数:
desc:保存复制后字符串的数组首地址
src:原字符串首地址
n:复制原字符串前n个字符到目标数组中
返回值:函数调用成功返回一个指向复制后字符串的首地址
strcat实现字符串的拼接
#include <string.h>
char *strcat(char *dest, const char *src);
功能:实现两个字符串的拼接
参数:
desc:要拼接的第一个字符串首地址,也是拼接后字符串首地址
src:要拼接的第二个字符串首地址
返回值:成功返回拼接后字符串的首地址
char *strncat(char *dest, const char *src, size_t n);
功能:实现指定长度的字符串的拼接,将src字符串前n个字符拼接到desc字符串的
后面
参数:
desc:要拼接的第一个字符串首地址,也是拼接后字符串首地址
src:要拼接的第二个字符串首地址
n:要拼接的src中字符的个数
返回值:成功返回拼接后字符串的首地址
strcmp()实现字符串的比较
#include <string.h>
int strcmp(const char *s1, const char *s2);
功能:实现两个字符串的比较
参数:
s1:要比较的第一个字符串
s2:要比较的第二个字符串
返回值:
当两个字符串相等时,函数返回0
当s1字符串比s2字符串大,此时返回一个正整数
当s2字符串比s2字符串大,此时返回一个负整数
int strncmp(const char *s1, const char *s2, size_t n);
功能:进行两个字符串前n个字符的比较
参数:
s1:要比较的第一个字符串
s2:要比较的第2个字符串
n:要比较两个字符串前n个字符
返回值:
当两个字符串相等时,函数返回0
当s1字符串比s2字符串大,此时返回一个正整数
当s2字符串比s2字符串大,此时返回一个负整数
二、二维字符数组
<1> 概念:本质就是一个二维数组
<2> 初始化
只讨论保存字符串时的初始化;
char 数组名[行数][列数]={“字符串1”,“字符串2”,......}
<3> 输出:输出各行的方法:以字符串形式输出,以下标代表各行:
name[0]:第0行内容
name[2]:第1行内容
name[3]:第3行内容
三、指针
<1> 指针就是地址
<2> 定义 数据类型* 指针变量名
<3> 初始化
NULL
int *p=&a 存入某个地址
int *p=q: 另一个指针变量给其初始化
<4> 空指针和野指针
空指针:用NULL初始化的指针
野指针:没初始化的指针为野指针;严重可导致程序崩溃;应避免野指针的出现
<5> 通过指针访问变量的数据
在除了定义指针情况外,再次使用*,表示该指针指向内存的数据
<6> 指针的大小
32位系统中,指针为4字节;64位系统中,指针为8字节大小
相关文章:
嵌入式基础:Linux C语言:Day7
重点: strlen()函数\strcpy()函数\strcat实现\strcmp()实现 数组的清空:bzero函数、memset函数 一、字符数组 <1> 概念 字符数组本质上就是一个数组,保存一个个字符,也一般用来保存字符串 字符串由多个字符组成的一个字符…...

Tablesaw封装Plot.ly实现数据可视化
上文介绍tablesaw的数据处理功能,本文向你展示其数据可视化功能,并通过几个常用图表示例进行说明。 Plot.ly包装 可视化是数据分析的重要组成部分,无论你只是“查看”新数据集还是验证机器学习算法的结果。Tablesaw是一个开源、高性能的Java…...
RAG与Embedding:现代NLP的核心技术
本篇文章简单梳理我在了解RAG以及Embedding技术时的想法,仅供参考 文章目录 1. 引言背景为什么要关注RAG与Embedding技术 2. 基础概念与原理2.1 什么是RAG (Retrieval-Augmented Generation)定义工作流程优点与适用场景 2.2 什么是Embedding定义作用 3. Embedding在…...
力扣每日一题 - 1812. 判断国际象棋棋盘中一个格子的颜色
题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。2.如果所给格子的颜色是白色,请你返回 true,如果是黑色ÿ…...
Map 那些事儿
1. map 的基本结构 Go 的 map 是一种哈希表,其核心思想是通过哈希函数将键映射到某个位置(桶)以存储对应的值。它主要包含以下关键部分: •桶(bucket):存储键值对的容器,map 中的元…...

GCP Case:MountKirk Games
游戏后端 根据游戏活动动态放大或缩小。 连接到托管的nos0l数据库服务。 运行定制的linux发行版。 游戏分析平台 根据游戏活动来扩大或缩小规模直接处理来自游戏服务器的传入数据。 处理由于移动网络缓慢而迟到的数据。 通过sql查询来访问至少10tb的历史数据 处理由用户…...
[创业之路-187]:《华为战略管理法-DSTE实战体系》-1-从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机
目录 一、UTStarcom(UT斯达康)的发展历程 1、创立与初期发展 2、快速成长与上市 3、技术创新与业务拓展 4、战略调整与持续发展 二、从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机 1、企业初期发展的顺利表现 2、顺…...

高级数据结构-树状数组
介绍 树状数组的推导 两个基础操作 模板-acwing795. 前缀和 #include<bits/stdc.h> using namespace std;const int N 1e610; int c[N]; int lowbit(int x){return x & -x; }int query(int x){int ans 0;for(; x; x - lowbit(x)) ans c[x];return ans; }void add…...
LeetCode279. 完全平方数(2024冬季每日一题 27)
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 …...

Scala 隐式转换
object test {//复习隐式转换://隐式转换:编译器 偷偷地,自动地帮我们把一种数据转换为另一种类型//例如:int --> double//它有失败的时候(double --> int),有成功的时候//当它转换失败的…...

K8S命令部署后端(流水线全自动化部署)
前言 本文为链接: 云效流水线k8s半自动部署java(保姆级)的补充,本文起初的目的是为了补充完善k8s流水线的全自动化部署,但是也适用于k8s的一键重启,因为使用k8s的web页面容易出现漏点的情况,因此也可以把代码保存为shell脚本,同样可以实现一键重启。关于…...

Ubuntu中配置交叉编译工具的三条命令的详细研究
关于该把下面的三条交叉编译配置语句加到哪里,详情见 https://blog.csdn.net/wenhao_ir/article/details/144326545 的第2点。 现在试解释下面三条交叉编译配置语句: export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$…...

【PyQt5教程 二】Qt Designer 信号与槽的使用方法及PyQt5基本小部件说明
目录 一、信号与槽机制: 二、信号与槽使用方法: (1)使用Qt Designer 的信号与槽编辑器: (2)使用固定语法直接建立信号槽连接: 三、PyQt小部件及其触发信号: &#x…...

编程语言中接口(Interface)介绍
编程语言中接口(Interface)介绍 在编程语言中,“接口”(Interface)是一种抽象类型,定义了一组方法(和属性),但不包含其具体实现。接口通常用于规定类必须实现的行为&…...
算法学习之贪心算法
前言 记录一下,免得又又忘了 贪心算法 在刚接触的时候,我一直觉得贪心和动态规划有相似之处,但做过的题目看,贪心似乎不用迭代...
【jvm】垃圾回收的优点和原理
目录 1. 说明2. 优点3. 原理3.1 发现无用对象3.2 回收无用对象所占用的内存 4. 回收算法4.1 标记-清除算法4.2 复制算法4.3 标记-整理算法4.4 分代收集算法 1. 说明 1.JVM(Java虚拟机)垃圾回收是Java语言的一大特性,它自动管理内存ÿ…...

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破
文章目录 前言一、YOLOv1:单阶段目标检测的开端二、YOLOv2:更精准的实时检测三、YOLOv3:阶梯特征融合四、YOLOv4:性能和速度的新平衡五、YOLOv5:易用性和扩展性的加强六、YOLOv6:工业部署的利器七、YOLOv7&…...
深入浅出:序列化与反序列化的全面解析
文章目录 1. 引言2. 什么是序列化?2.1 为什么需要序列化? 3. 什么是反序列化?3.1 反序列化的重要性 4. 序列化与反序列化的实现4.1 JSON (JavaScript Object Notation)4.2 XML (eXtensible Markup Language)4.3 Protocol Buffers (Protobuf)4…...

word实践:正文/标题/表图等的共用模板样式设置
说在前面 最近使用word新建文件很多,发现要给大毛病,每次新建一个word文件,标题/正文的字体、大小和间距都要重新设置一遍,而且每次设置这些样式都忘记了参数,今天记录一下,以便后续方便查看使用。现在就以…...

Blender中使用BlenderGIS插件快速生成城市建筑模型
导入下载 BlenderGIS 插件 去github上下载其压缩包,地址如下: https://github.com/domlysz/BlenderGIS 在BlenderGIS中导入这个插件压缩包: 点击上方菜单栏的编辑,点击偏好设置 在插件>从磁盘安装中导入刚刚下载的压缩包 可…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...