当前位置: 首页 > 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;也一般用来保存字符串 字符串由多个字符组成的一个字符…...

阿里云盘permission denied

问题是执行 ./aliyunpan 时遇到了 Permission denied 的错误。这通常是因为文件没有执行权限。以下是解决问题的步骤&#xff1a; 检查文件权限 运行以下命令检查文件的权限&#xff1a; ls -l aliyunpan输出中会看到类似以下内容&#xff1a; -rw-r--r-- 1 user group 123…...

Flink学习连载文章12--FlinkSQL高级部分

eventTime 测试数据如下&#xff1a; {"username":"zs","price":20,"event_time":"2023-07-17 10:10:10"} {"username":"zs","price":15,"event_time":"2023-07-17 10:10:3…...

缓冲区溢出基础与实践

缓冲区溢出 缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量&#xff0c;溢出的数据覆盖在合法数据上。理想的情况是&#xff1a;程序检查数据长度并不允许输入超过缓冲区长度的字符&#xff0c;但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹…...

matlab figure函数 single 数据类型

1.matlab figure函数详细介绍 在MATLAB中&#xff0c;figure函数用于创建新的图形窗口或激活现有的图形窗口。以下是figure函数的详细介绍和用法&#xff1a; 基本用法 创建新图形窗口&#xff1a;不带任何参数调用figure会创建一个新的图形窗口&#xff0c;并将其设为当前活…...

量化交易系统开发-实时行情自动化交易-8.15.Ptrade/恒生平台

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于Ptrade/恒生平台介绍。 P…...

Vue03

目录 一、今日目标 1.生命周期 2.综合案例-小黑记账清单 3.工程化开发入门 4.综合案例-小兔仙首页 二、Vue生命周期 三、Vue生命周期钩子 四、生命周期钩子小案例 1.在created中发送数据 六、工程化开发模式和脚手架 1.开发Vue的两种方式 2.Vue CLI脚手架 基本介绍…...

【AI学习】Mamba学习(十九):关于S4-FouT

在前面《Mamba学习&#xff08;十六&#xff09;&#xff1a;从S4到S5模型》一文中&#xff0c;提到了S4D-Lin&#xff0c;其具体状态矩阵A的初始化形式为&#xff1a; S4D-Lin对比S4D-Inv是一种更简单的形式&#xff0c;可以看作是对S4-FouT&#xff08;S4的另外一种变体&am…...

YOLOv5-C3模块实现

YOLOv5-C3模块实现 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 电脑系统&#xff1a;Windows11 显卡型号&#xff1a;NVIDIA Quadro P620 语言环境&#xff1a;python 3.9.7 编译器&#xff1a;jupyt…...

ubuntu下Qt5自动编译配置QtMqtt环境(10)

文章目录 [toc]1、概述2、下载QtMqtt源码3、编译4、验证5、参考6、视频 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt网络编程 &#x1f448; 1、概述 Qt默认是不包含mqtt库的&#xff0c;如果需要使用到mqtt库就只能自己编译配置&#xff1b; 网络所有的…...

切比雪夫不等式:方差约束下的概率估计

切比雪夫不等式&#xff1a;方差约束下的概率估计 背景 在概率分析中&#xff0c;切比雪夫不等式是一个常用的工具&#xff0c;它通过引入随机变量的 方差信息&#xff0c;给出了偏离均值的概率界限。这一不等式是对 马尔科夫不等式 的自然扩展&#xff0c;结合了更丰富的分布…...

SIP系列七:ICE框架(P2P通话)

我的音视频/流媒体开源项目(github) SIP系列目录 目录 一、NAT 1、NAT介绍 2、NAT类型 2.1、 完全圆锥型NAT 2.2、受限圆锥型NAT 2.3、端口受限圆锥型NAT 2.4、对称NAT 3、NAT打洞 3.1、不同一NAT下 3.2、同一NAT下 二、ICE 三、ICE中的SDP 至此&#x…...

小程序-基于java+SpringBoot+Vue的智慧校园管理系统设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…...

Visual Studio 2022创建离线安装包

步骤1&#xff1a; 下载 Visual Studio 引导程序(最新版) 历史版本 步骤2 新建文件夹“E:\VS2022”&#xff0c;将下载的“vs_Professional.exe”拷贝到文件夹下在此文件夹窗口按住shift鼠标右键&#xff0c;选择“在此处打开powershell窗口” 步骤3 根据需要将代码复制到…...

Android 实现中英文切换

在开发海外项目的时候&#xff0c;需要实现app内部的中英文切换功能&#xff0c;所有的英文都是内置的&#xff0c;整体思路为&#xff1a; 创建一个sp对象&#xff0c;存储当前系统的语言类型&#xff0c;然后在BaseActivity中对语言进行判断&#xff1b; //公共Activitypubl…...

CmakeLists学习刨根问底

必要的两项内容 cmake_minimum_required(VERSION 2.5)project(mymuduo) 这行代码指定了构建项目所需的CMake最低版本为2.5。CMake是一个跨平台的自动化构建系统&#xff0c;它使用CMakeLists.txt文件来定义项目的构建过程。定义项目的名称为mymuduo。CMake将使用这个名称来生成…...

策略模式实战 - 猜拳游戏

**可以整体的替换一套算法&#xff0c;这就是策略模式。**这样对于同一个问题&#xff0c;可以有多种解决方案——算法实现的时候&#xff0c;可以通过策略模式来非常方便的进行算法的整体替换&#xff0c;而各种算法是独立封装好的&#xff0c;不用修改其内部逻辑。 具体的实…...

VoCo-LLaMA: Towards Vision Compression with Large Language Models

视觉语言模型在各种多模态任务上取得了显著的成功&#xff0c;但经常受到有限上下文窗口和处理高分辨率图像输入和视频的高计算成本的瓶颈。视觉压缩可以通过减少视觉令牌数量避免该问题。先前方法使用额外模块压缩视觉令牌并强制LLM理解压缩的令牌。然而&#xff0c;LLM对视觉…...

每日小知识

Kafka是一个分布式流平台&#xff0c;具有高性能、高可靠性和可扩展性的特点。它主要用于处理实时的数据流&#xff0c;将数据以高吞吐量的方式进行发布和订阅。以下是关于Kafka的几个基本概念和优势的介绍&#xff1a; 概念&#xff1a; 生产者&#xff08;Producer&#xf…...

Linux其二设置端口号,静态ip以及命令

目录 1、VI编辑器 【linux版本的文本文件】 2&#xff09; 补充的vi编辑器的其他内容(了解) 2、ln 连接的意思 link的缩写 3、文件的查看 【重点】 4、压缩与解压&#xff08;重点&#xff09; 5、find 查找命令 6、which & whereis 作用是一样的&#xff0c;表示某…...

吉林大学23级数据结构上机实验(第7周)

A 去火车站 寒假到了&#xff0c;小明准备坐火车回老家&#xff0c;现在他从学校出发去火车站&#xff0c;CC市去火车站有两种方式&#xff1a;轻轨和公交车。小明为了省钱&#xff0c;准备主要以乘坐公交为主。CC市还有一项优惠政策&#xff0c;持学生证可以免费乘坐一站轻轨&…...

SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

文章目录 1.整合MyBatis 1.需求分析2.数据库表设计3.数据库环境配置 1.新建maven项目2.pom.xml 引入依赖3.application.yml 配置数据源4.Application.java 编写启动类5.测试6.配置类切换druid数据源7.测试数据源是否成功切换 4.Mybatis基础配置 1.编写映射表的bean2.MonsterMap…...

【2024最新】基于Springboot+Vue的网上图书商城平台Lw+PPT

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…...

JAVA-面向对象基础

文章目录 概要封装多态抽象类接口内部类为什么需要内部类 概要 面向对象是一种编程范式或设计哲学&#xff0c;它将软件系统设计为由多个对象组成&#xff0c;这些对象通过特定的方式相互作用 封装 将数据和操作数据的方法封装在一个类中&#xff0c;并通过访问修饰符控制对…...

Y3编辑器官方文档1:编辑器简介及菜单栏详解(文件、编辑、窗口、细节、调试)

文章目录 一、新建项目二、 编辑器主界面2.1 游戏场景2.2 导航栏/菜单栏2.3 功能栏三、菜单栏详细介绍3.1 文件3.1.1 版本管理3.1.2 项目管理(多关卡)3.1.2.1 多关卡功能说明3.1.2.2 关卡切换与关卡存档3.2 编辑3.2.1 通用设置3.2.2 键位设置3.3 窗口(日志)3.4 细节3.4.1 语言…...

力扣94题:二叉树的中序遍历

力扣94题&#xff1a;二叉树的中序遍历&#xff08;C语言实现详解&#xff09; 题目描述 给定一个二叉树的根节点 root &#xff0c;返回它的中序遍历&#xff08;Inorder Traversal&#xff09;。 中序遍历的规则是&#xff1a; 先访问左子树&#xff1b;再访问根节点&…...

【数据结构】二叉树的性质和存储结构

性质 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点 深度为k的二叉树至多有2^{k-1}个结点&#xff08;k≥1&#xff09;&#xff0c;至少有k个结点 对任何一棵二叉树T&#xff0c;如果其叶子数为n0&#xff0c;度为2的结点数为n2&#xff0c;则n0n21 具有n个结点的完…...

【Spring项目】图书管理系统

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;项目实现准备 1&#xff1a;需求 &#xff08;1&#xff09;登录 2&#xff1a;准备…...

TCP编程案例

笔记&#xff1a;&#xff08;本题可能需要的&#xff09; TCP协议&#xff1a; TCP协议进行通信的两个应用进程&#xff1a;客户端、服务端。 使用TCP协议前&#xff0c;须先建立TCP连接&#xff0c;形成基于字节流的传输数据通道 传输前&#xff0c;采用“三次握手”方式…...

PyTorch 实现动态输入

使用 PyTorch 实现动态输入&#xff1a;支持训练和推理输入维度不一致的 CNN 和 LSTM/GRU 模型 在深度学习中&#xff0c;处理不同大小的输入数据是一个常见的挑战。许多实际应用需要模型能够灵活地处理可变长度的输入。本文将介绍如何使用 PyTorch 实现支持动态输入的 CNN 和…...

网络数据库

创建删除修改模式create schemadrop schema表create tabledrop tablealter table视图create view drop view索引create indexdrop index alter index 定义模式&#xff1a;create schema 《模式名》 authorization 《用户名》表定义语句 视图定义语句 授权定义语句//未指…...

【软考速通笔记】系统架构设计师⑲——专业英语

文章目录 一、前言二、常用名词三、架构风格四、非功能需求五、应用架构六、软件架构重用 一、前言 笔记目录大纲请查阅&#xff1a;【软考速通笔记】系统架构设计师——导读 二、常用名词 名词翻译architecture架构system系统design设计requirements需求components组件constr…...

Android APP自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记&#xff0c;当前清理空间&#xff0c;本来想直接删除掉的&#xff0c;但是感觉有些舍不得&#xff0c;因此先搬移过来。 Android导入已有外部数据库 2015.06.26在QQ空间记录&#xff1a;在Android中不能直接打开res aw目录中的数据…...

Spring 事务和事务传播机制

Spring 事务和事务传播机制 一、Spring 事务的基本概念 事务是一组操作&#xff0c;被视为一个不可分割的工作单元&#xff0c;要么全部完成&#xff0c;要么全部失败回滚&#xff0c;以此来确保数据的一致性和完整性。Spring事务管理允许我们在应用程序中声明式地或编程式地…...

VSCode(四)CMake调试

1. 工具准备 1.1 C环境插件 1.2 CMake插件 2. Cmake工程 2.1 创建项目文件夹 ex:CMAKE_TEST 2.2 创建CMake工程 &#xff08;shift ctl P), 选择"CMAKE: Quick Start": 2.3 填写project name: (ex: test_cmake) 2.4 选择”Executable“ 项目文件内会自动…...

创建存储过程

在student数据库中&#xff0c;创建一个名为ST_CHAXUN_01的存储过程&#xff0c;该存储过程返回计算机系学生的“姓名”、“性别”、“出生日期”信息。 操作步骤如下&#xff1a; ① 在“对象资源管理器”窗格中&#xff0c;展开“数据库”结点。 ② 单击相应的数据库&#…...

macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表

以下是 macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表&#xff1a; 符号按键名称描述⌘Command (Cmd)常用的功能键&#xff0c;用于执行大多数快捷操作。⌥Option (Alt)Option 键&#xff0c;常用于辅助操作和特殊字符输入。⇧ShiftShift 键&#xff0c;常用…...

ftp服务器搭建-安装、配置及验证

ftp服务器搭建-安装、配置及验证 #安装 sudo apt-get install vsftpd #配置文件 cat > /etc/vsftpd.conf << "EOF" listenNO listen_ipv6YES anonymous_enableNO local_enableYES write_enableYES dirmessage_enableYES use_localtimeYES xferlog_enable…...

windows ping 执行过程分析

控制台 PS C:\Users\Admin> ping mcs.zijieapi.com正在 Ping mcs.zijieapi.com [223.109.117.226] 具有 32 字节的数据: 来自 223.109.117.226 的回复: 字节32 时间31ms TTL49 来自 223.109.117.226 的回复: 字节32 时间30ms TTL49 来自 223.109.117.226 的回复: 字节32 时…...

强大的远程同步工具-rsync

rsync 强大的远程同步工具&#xff0c;也可用于本地目录和本地目录的同步&#xff0c;它最大的特点就是会自动判断进行增量同步&#xff1b; # “演示文档”后加了/&#xff0c;代表传输的是文件&#xff0c;建议destination也指定一个目录&#xff0c;该目录可以不存在&…...

蝉联第一 | IDC云系统软件市场报告2024H1,云轴科技ZStack独立云厂商第一

2024年12月&#xff0c;根据全球知名的IT市场研究和咨询公司IDC最新发布的《中国云系统软件市场跟踪报告2024H1》显示&#xff0c;2024年上半年中国云系统软件市场规模达到27.93亿元人民币&#xff0c;同比增长11.6%。在这一增长趋势中&#xff0c;云轴科技ZStack作为云系统软件…...

【IPV6改造解读】

座右铭&#xff1a;我们每一个心怀希望的人&#xff0c;就像是一颗种子一样&#xff01; 文章目录 前言一、IPV6改造基本情况分析二、IPV6针对不同场景改造方案1.网站/APP场景-IPV6云网关升级改造方案2.局域网专网(互联网侧)场景-安全大脑IPV6改造方案 总结 前言 提示&#xf…...

常用的Kali命令Top10

Kali Linux是一种基于Debian的Linux发行版&#xff0c;被广泛用于渗透测试和网络安全。以下是一些常用的Kali Linux命令的详细解释&#xff1a; ifconfig&#xff1a;显示和配置网络接口的信息。可以用于查看当前系统的IP地址、网关和子网掩码等。 apt-get&#xff1a;用于安装…...

阿里巴巴正式发布了全新大型语言模型Marco-o1

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

【AI日记】24.12.07 kaggle 比赛 Titanic-10

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容&#xff1a; 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习&#xff08;pandas&#xff0c;numpy&#xff0c;sklearn&#xff0c;seaborn&#xff0c;matplotlib&a…...

《QT 示例宝库:探索丰富的编程世界》

《QT 示例宝库&#xff1a;探索丰富的编程世界》 一、QT 基础示例&#xff08;一&#xff09;QRadioButton 示例&#xff08;二&#xff09;拦截关闭事件示例 二、QT 常用代码示例&#xff08;一&#xff09;QObject 相关操作&#xff08;二&#xff09;Qt 基本容器遍历&#x…...

子类有多个父类的情况下Super不支持指定父类来调用方法

1、Super使用方法 super()函数在Python中用于调用父类的方法。它返回一个代理对象&#xff0c;可以通过该对象调用父类的方法。 要使用super()方法&#xff0c;需要在子类的方法中调用super()&#xff0c;并指定子类本身以及方法的名称。这样就可以在子类中调用父类的方法。 …...

鸿蒙UI开发——渐变色效果

1、概 述 ArkTs可以通过颜色渐变接口&#xff0c;设置组件的背景颜色渐变效果&#xff0c;实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型&#xff1a;线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中&#xff0c;默认…...

java基础概念47-ArrayList、LinkList和迭代器

一、ArrayList集合 1-1、ArrayList的两种添加信息的方式 1-2、ArrayList集合底层逻辑 1、利用空参创建的集合&#xff0c;在底层创建一个默认长度为0的数组 2、添加第一个元素时&#xff0c;底层会创建一个新的长度为10的数组 3、存满时&#xff0c;会扩容1.5倍。 4、如果…...

java编程1.5.4 - 失而复得

前言 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往复以至无穷&a…...