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

嵌入式基础: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

重点&#xff1a; strlen()函数\strcpy()函数\strcat实现\strcmp()实现 数组的清空&#xff1a;bzero函数、memset函数 一、字符数组 <1> 概念 字符数组本质上就是一个数组&#xff0c;保存一个个字符&#xff0c;也一般用来保存字符串 字符串由多个字符组成的一个字符…...

Tablesaw封装Plot.ly实现数据可视化

上文介绍tablesaw的数据处理功能&#xff0c;本文向你展示其数据可视化功能&#xff0c;并通过几个常用图表示例进行说明。 Plot.ly包装 可视化是数据分析的重要组成部分&#xff0c;无论你只是“查看”新数据集还是验证机器学习算法的结果。Tablesaw是一个开源、高性能的Java…...

RAG与Embedding:现代NLP的核心技术

本篇文章简单梳理我在了解RAG以及Embedding技术时的想法&#xff0c;仅供参考 文章目录 1. 引言背景为什么要关注RAG与Embedding技术 2. 基础概念与原理2.1 什么是RAG (Retrieval-Augmented Generation)定义工作流程优点与适用场景 2.2 什么是Embedding定义作用 3. Embedding在…...

力扣每日一题 - 1812. 判断国际象棋棋盘中一个格子的颜色

题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个坐标 coordinates &#xff0c;它是一个字符串&#xff0c;表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。2.如果所给格子的颜色是白色&#xff0c;请你返回 true&#xff0c;如果是黑色&#xff…...

Map 那些事儿

1. map 的基本结构 Go 的 map 是一种哈希表&#xff0c;其核心思想是通过哈希函数将键映射到某个位置&#xff08;桶&#xff09;以存储对应的值。它主要包含以下关键部分&#xff1a; •桶&#xff08;bucket&#xff09;&#xff1a;存储键值对的容器&#xff0c;map 中的元…...

GCP Case:MountKirk Games

游戏后端 根据游戏活动动态放大或缩小。 连接到托管的nos0l数据库服务。 运行定制的linux发行版。 游戏分析平台 根据游戏活动来扩大或缩小规模直接处理来自游戏服务器的传入数据。 处理由于移动网络缓慢而迟到的数据。 通过sql查询来访问至少10tb的历史数据 处理由用户…...

[创业之路-187]:《华为战略管理法-DSTE实战体系》-1-从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机

目录 一、UTStarcom&#xff08;UT斯达康&#xff09;的发展历程 1、创立与初期发展 2、快速成长与上市 3、技术创新与业务拓展 4、战略调整与持续发展 二、从UTStarcom的发展历程&#xff0c;如何辩证的看企业初期发展太顺利中的危机 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 &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c;而 3 和 11 不是。 …...

Scala 隐式转换

object test {//复习隐式转换&#xff1a;//隐式转换&#xff1a;编译器 偷偷地&#xff0c;自动地帮我们把一种数据转换为另一种类型//例如&#xff1a;int --> double//它有失败的时候&#xff08;double --> int&#xff09;&#xff0c;有成功的时候//当它转换失败的…...

K8S命令部署后端(流水线全自动化部署)

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

Ubuntu中配置交叉编译工具的三条命令的详细研究

关于该把下面的三条交叉编译配置语句加到哪里&#xff0c;详情见 https://blog.csdn.net/wenhao_ir/article/details/144326545 的第2点。 现在试解释下面三条交叉编译配置语句&#xff1a; export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$…...

【PyQt5教程 二】Qt Designer 信号与槽的使用方法及PyQt5基本小部件说明

目录 一、信号与槽机制&#xff1a; 二、信号与槽使用方法&#xff1a; &#xff08;1&#xff09;使用Qt Designer 的信号与槽编辑器&#xff1a; &#xff08;2&#xff09;使用固定语法直接建立信号槽连接&#xff1a; 三、PyQt小部件及其触发信号&#xff1a; &#x…...

编程语言中接口(Interface)介绍

编程语言中接口&#xff08;Interface&#xff09;介绍 在编程语言中&#xff0c;“接口”&#xff08;Interface&#xff09;是一种抽象类型&#xff0c;定义了一组方法&#xff08;和属性&#xff09;&#xff0c;但不包含其具体实现。接口通常用于规定类必须实现的行为&…...

算法学习之贪心算法

前言 记录一下&#xff0c;免得又又忘了 贪心算法 在刚接触的时候&#xff0c;我一直觉得贪心和动态规划有相似之处&#xff0c;但做过的题目看&#xff0c;贪心似乎不用迭代...

【jvm】垃圾回收的优点和原理

目录 1. 说明2. 优点3. 原理3.1 发现无用对象3.2 回收无用对象所占用的内存 4. 回收算法4.1 标记-清除算法4.2 复制算法4.3 标记-整理算法4.4 分代收集算法 1. 说明 1.JVM&#xff08;Java虚拟机&#xff09;垃圾回收是Java语言的一大特性&#xff0c;它自动管理内存&#xff…...

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破

文章目录 前言一、YOLOv1&#xff1a;单阶段目标检测的开端二、YOLOv2&#xff1a;更精准的实时检测三、YOLOv3&#xff1a;阶梯特征融合四、YOLOv4&#xff1a;性能和速度的新平衡五、YOLOv5&#xff1a;易用性和扩展性的加强六、YOLOv6&#xff1a;工业部署的利器七、YOLOv7&…...

深入浅出:序列化与反序列化的全面解析

文章目录 1. 引言2. 什么是序列化&#xff1f;2.1 为什么需要序列化&#xff1f; 3. 什么是反序列化&#xff1f;3.1 反序列化的重要性 4. 序列化与反序列化的实现4.1 JSON (JavaScript Object Notation)4.2 XML (eXtensible Markup Language)4.3 Protocol Buffers (Protobuf)4…...

word实践:正文/标题/表图等的共用模板样式设置

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

Blender中使用BlenderGIS插件快速生成城市建筑模型

导入下载 BlenderGIS 插件 去github上下载其压缩包&#xff0c;地址如下&#xff1a; https://github.com/domlysz/BlenderGIS 在BlenderGIS中导入这个插件压缩包&#xff1a; 点击上方菜单栏的编辑&#xff0c;点击偏好设置 在插件>从磁盘安装中导入刚刚下载的压缩包 可…...

5分钟搞定foobar2000美化:foobox-cn让你的音乐播放器焕然一新!

5分钟搞定foobar2000美化&#xff1a;foobox-cn让你的音乐播放器焕然一新&#xff01; 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 厌倦了千篇一律的音乐播放器界面&#xff1f;想让你的foobar200…...

AI 模型推理容器化性能优化方案

AI模型推理容器化性能优化方案 随着AI技术的快速发展&#xff0c;模型推理在生产环境中的部署需求日益增长。容器化技术凭借其轻量级、可移植性和高效资源管理的优势&#xff0c;成为AI模型部署的主流选择。在实际应用中&#xff0c;如何优化容器化AI推理的性能&#xff0c;降…...

解锁AI创作自由:ComfyUI节点式工作流从入门到精通

解锁AI创作自由&#xff1a;ComfyUI节点式工作流从入门到精通 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 你是否遇到过这样的困境&#xff1a;想要调整AI生成图像的某个细节…...

Alias Method:游戏掉落系统的O(1)采样优化实践

1. 游戏掉落系统的随机采样困境 每个游戏开发者都会遇到这样的场景&#xff1a;当玩家击败怪物时&#xff0c;系统需要根据预设概率随机掉落物品。比如某Boss的掉落表可能是&#xff1a;传说武器&#xff08;1%&#xff09;、史诗装备&#xff08;5%&#xff09;、稀有材料&…...

【UE5】深入解析Dedicated Server专用服务器的网络同步机制与实战优化

1. UE5专用服务器基础概念解析 第一次接触UE5专用服务器(Dedicated Server)时&#xff0c;我完全被各种专业术语绕晕了。经过几个项目的实战后&#xff0c;我发现理解它的本质其实很简单——就像餐厅里的服务员与顾客的关系。服务器就是那个永远在后台忙碌的服务员&#xff0c;…...

2条普通程序员的靠谱出路:AI开发与出海SEO,让AI成为你的助力而非威胁

文章分析了适合普通程序员的两种新出路&#xff1a;转型AI开发和出海做SEO。这两种路径均满足三大条件&#xff1a;市场空间大、AI能赋能工作、有标准执行路径。AI开发是配合业务团队开发AI工作流&#xff0c;可通过前端专精→涉猎AI应用开发→魔改开源项目逐步转型。出海SEO则…...

PX4启动脚本rcS:从SD卡加载到飞行器就绪的完整流程解析

1. PX4启动脚本rcS的核心作用 当你第一次接触PX4飞控时&#xff0c;可能会被它复杂的启动流程搞得一头雾水。其实这个看似神秘的启动过程&#xff0c;核心就是一个叫rcS的脚本文件在掌控全局。这个脚本就像是飞控系统的"总指挥"&#xff0c;负责协调各个模块的启动顺…...

OpenClaw技能扩展实战:基于nanobot开发自定义自动化模块

OpenClaw技能扩展实战&#xff1a;基于nanobot开发自定义自动化模块 1. 为什么需要自定义技能&#xff1f; 去年夏天&#xff0c;我经常需要在出门前手动查询天气情况&#xff0c;这个看似简单的动作却让我感到烦躁——打开浏览器、输入网址、输入城市、查看结果。作为一个技…...

80+款Android UI模板深度解析:从零到一构建专业级应用界面的实战指南

80款Android UI模板深度解析&#xff1a;从零到一构建专业级应用界面的实战指南 【免费下载链接】Android-ui-templates Download free android app templates free and paid. 项目地址: https://gitcode.com/gh_mirrors/an/Android-ui-templates 在当今移动应用开发领域…...

MATLAB实时绘图卡顿?优化串口通信与图形刷新的几个实用技巧

MATLAB实时绘图性能优化&#xff1a;突破串口通信与图形刷新的瓶颈 当你在实验室里盯着屏幕上跳动的数据曲线&#xff0c;却发现它像老式幻灯片一样一卡一顿时&#xff0c;那种挫败感简直让人抓狂。特别是在处理高速ADC采样或长时间运行的实验时&#xff0c;MATLAB默认的绘图方…...