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

linux字符串处理

目录

  • 1 C 截取字符串,截取两个子串中间的字符串
  • 2 获取该字符串后面的字符串
    • 用 strstr() 函数查找需要提取的特定字符串,然后通过指针运算获取该字符串后面的字符串
    • 用 strtok() 函数分割字符串,找到需要提取的特定字符串后,调用 strtok() 传入 NULL 参数继续分割字符串获取下一个子串。
  • 3 C语言strncpy
    • 字符串的截取
    • 从左边开始截取n个字符
    • 从右边开始截取n个字符
    • 从中间某处截取一定长度的的子字符串
  • C语言中将文件中的某行的字符串读取出来
    • 读取指定行
  • 提取包含特定内容的所有行
    • 读取包含指定内容的行数
  • 获取所在行
  • 清空字符串

1 C 截取字符串,截取两个子串中间的字符串

// 截取字符串,截取两个子串中间的字符串
char g_str[400];
char* InterceptString (char *str, char *left_str, char *right_str)
{char *l_str = strstr(str, left_str);int r_str = strcspn(l_str, right_str);int l_len = strlen(left_str);int str_len = r_str - l_len;strncpy(g_str, l_str+l_len, str_len);g_str[str_len+1] = '\0';return g_str;
}// 截取字符串的信号强度char at[] = "AT+CSQ\r\n\r\n+CSQ: 18,99\r\n\r\nOK\r\n";char *dd;dd = InterceptString (at, "+CSQ: ",",99");USART_printf(&huart1,"dd=%s\r\n",dd);//将串口2接收到的数据发送到串口1memset(g_str, 0, sizeof(g_str));  // 清空字符串

2 获取该字符串后面的字符串

用 strstr() 函数查找需要提取的特定字符串,然后通过指针运算获取该字符串后面的字符串

#include <stdio.h>
#include <string.h>
int main() {    
char str[] = "The quick brown fox jumps over the lazy dog";    
char *substr = strstr(str, "brown"); // 查找 "brown" 子串    
if (substr != NULL) 
{        
substr += strlen("brown"); // 获取 "brown" 后面的字符串        printf("%s", substr);    
}    
return 0;
}
#include <stdio.h>
#include <string.h>char *get_str_spec(char *search_string, char *sing)
{char *substr = strstr(search_string, sing); // 查找 "search_string" 子串    if (substr != NULL) {        substr += strlen(sing); // 获取 "brown" 后面的字符串        printf("%s", substr);    }return substr;   
}int main() {    
char str[] = "The quick brown fox jumps over the lazy dog";    
char *cCC=NULL;cCC=get_str_spec(str, "brown ");
printf("%s\n",cCC);
}

输出结果为:

fox jumps over the lazy dog

用 strtok() 函数分割字符串,找到需要提取的特定字符串后,调用 strtok() 传入 NULL 参数继续分割字符串获取下一个子串。

#include <stdio.h>
#include <string.h>
int main() {    
char str[] = "The quick brown fox jumps over the lazy dog";    
char *token = strtok(str, " "); // 分割字符串,以空格为分隔符    
while (token != NULL) {        
if (strcmp(token, "brown") == 0) 
{ // 找到需要提取的特定字符串            
token = strtok(NULL, " "); // 继续分割字符串获取下一个子串            printf("%s", token);           break;       }        
token = strtok(NULL, " ");    }   return 0;
}

输出结果为:

fox

3 C语言strncpy

字符串的截取

#include <stdio.h>
#include <string.h>int main(void){char dest[5]={0};char src[]="abcdefghijk";strncpy(dest,src,4);//注意一下这里假如改为5的话,可能会出现//内存越界使得dest可能会占用其它模块的内存,从而导致错误发生;//strncpy(dest,src+5,4);//从第5个字符开始截取;printf("dest: %s\n",dest);
return 0;
}

从左边开始截取n个字符

static char* left(char *dest,const char *src ,int n){
char *p=dest;
char *q=src;
int len=strlen(src);if(n>len){n=len;
}
while(n--) *(p++)=*(q++);
*(p++)='\0';return dest;
} 

从右边开始截取n个字符

static char* light(char *dest,const char *src ,int n){
char *p=dest;
char *q=src;
int len=strlen(src);if(n>len){n=len;
}
//int start=len-n;
//q=q+start;
q+=len-n;
while(n--) *(p++)=*(q++);
*(p++)='\0';
return dest;
} 

从中间某处截取一定长度的的子字符串

static char* cut_substr(char *dest,const char *src ,char start,int n){
char *p=dest;
char *q=src;
chsr *temp=NULL;
int len=strlen(src);if(start>=len || start<0){return NULL;
}
temp=q+start;
if(n>strlen(temp)){//注意这里,截取长度如果超过了src剩余的长度则只截取到src的最后,以避免内存越界;n=strlen(temp);
}
q+=start;
while(n--) *(p++)=*(q++);
*(p++)='\0';
return dest;
} 

C语言中将文件中的某行的字符串读取出来

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MaxCols 2000     //设定每行字符数不超过MaxCols,根据变化调整 
//获取已经打开文件fp的第line行内容到stri,如果成功返回得到的字节数,
//如果没有那么多行,返回-2 
int getlinetxt(FILE *fp,int line,char *stri){int i;fseek(fp,0,0); //指针到文件最开始for(i=0;i<line;i++) if(fgets(stri,MaxCols,fp)==NULL) //没有这么多行错误return -2;return strlen(stri);
}
//获取filename文件的第line行内容到stri,如果成功返回得到的字节数,
//如果打开文件失败,返回-1,如果没有那么多行,返回-2 
int getfiletxt(char *filename,int line,char *stri){FILE *fp;if ((fp=fopen(filename,"r"))==NULL){//打开文件错误,返回-1 return -1;}return getlinetxt(fp,line,stri);fclose(fp);
}
int main(){char s[MaxCols];int row=10, flag;//以下例子是获取d:\temp.txt的第10行文本内容 flag=getfiletxt("d:\\temp.txt",row,s);if (flag==-1)printf("打开文件错误\n");else if(flag==-2)printf("文件中的行数不足%d行\n",row);elseprintf("获取到的文本是: \n%s包含最后的换行符,长度=%d\n",s,flag);
}

读取指定行

feof()是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0

#include <stdio.h>
#include "readline.h"
// 读取文件指定一行
int ReadLine1(const char *fileName, char outBuf[], int n){int  whichLine = n;                //指定要读取哪一行int  currentIndex = 1;             //当前读取的行char buf[1024] = { 0 };            //临时 不能做返回值 防止局部数组被释放后非法访问内存FILE *file;int isOpen = fopen_s(&file, fileName, "r");if (isOpen != 0) {printf("文件打开失败\n");return -1;}while (!feof(file)){if (currentIndex == whichLine){fgets(outBuf, 1024, file);     //读取一行  必须用数组break;}fgets(buf, 1024, file);            //临时数组读取一行,并定位到下一行currentIndex++;}fclose(file);return 0;
}

提取包含特定内容的所有行

#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
int find(char *str,char ch)
{int i;for(i=0;i<strlen(str);i++){if(str[i]==ch){return 1;}}return 0;
}
void change(char *str,char ch1,char ch2)
{int i;for(i=0;i<strlen(str);i++){if(str[i]==ch1){str[i]=ch2;}}
}
void deletestr(char*str,char ch)
{int i;for(i=0;i<strlen(str);i++){if(str[i]==ch){str[i]='\0';}}
}
int main()
{ifstream input("1.dat");ofstream output("2.dat");char str[50];do{input>>str;if(find(str,'A')){change(str,'A','B');deletestr(str,'C');if(str!=NULL){output<<str<<endl;}}}while(!input.eof());input.close();output.close();return 0;
}

在这里插入图片描述
在这里插入图片描述

读取包含指定内容的行数

#include  <stdio.h>   
#include  <stdlib.h>   
#include  <string.h>   
#include  <unistd.h>
int  main()  
{         char  *filename  =  "./example.txt";  //  替换为您的文件名         char  *search_string  =  "target_string";  //  替换为您要搜索的字符串         int  count  =  0;      FILE  *file  =  fopen(filename,  "r");         if  (file  ==  NULL)  {             perror("Error  opening  file");             return  1;        } char  line[256];         while(fgets(line,  sizeof(line),  file)!=  NULL)  {            if  (strstr(line,  search_string)!=  NULL){ count++;             }         }    fclose(file);         printf("Number  of  lines  containing  the  target  string  %d \n",  count);      return  0;   
} 

获取所在行

#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>
#include  <unistd.h>
/*
char  *filename     :path
char  *search_string: string
*/
int  get_linenum(char  *filename, char  *search_string)
{//char  *filename  =  "./example.txt";  //  替换为您的文件名         //char  *search_string  =  "target_string";  //  替换为您要搜索的字符串      char  line[1024];int num=0;	int  count  =  0;FILE  *file  =  fopen(filename,  "r");if  (file  ==  NULL){perror("Error  opening  file");return  1;}while  (fgets(line,  sizeof(line),  file)!=  NULL){num++;if  (strstr(line,  search_string)!=  NULL){count++;break;}}fclose(file);//printf("Number  of  lines  containing  the  target  string  %d line num: %d \n",  count,num);return  num;
}int main()
{printf("%d\n", get_linenum("./example.txt", "target_string"));
}

清空字符串

char a[ ]="aaaaaaaa";               //定义字符数组
for (unsigned int i = 0; i < strlen(a); i++)a[i] = '\0' ;                      //for循环清空数组 

memset包含在头文件string.h中,函数原型为:memset(void *s,int ch,size_t n)。

char a[ ]="aaaaaaaa";            //定义字符数组
memset(a, 0, sizeof(a));          //清空数组 

直接使用strcpy将一个空串赋值给字符串就可以,需要string.h

char ss[11] = {"hello world"}; //当前为hello world
strcpy(ss, "");
//现在的ss就是空串了

相关文章:

linux字符串处理

目录 1 C 截取字符串,截取两个子串中间的字符串2 获取该字符串后面的字符串用 strstr() 函数查找需要提取的特定字符串&#xff0c;然后通过指针运算获取该字符串后面的字符串用 strtok() 函数分割字符串&#xff0c;找到需要提取的特定字符串后&#xff0c;调用 strtok() 传入…...

Nginx入门——Nginx的docker版本和windows版本安装和使用 代理的概念 负载分配策略

目录 引出nginx是啥正向代理和反向代理正向代理反向代理 nginx的安装使用Docker版本的nginx安装下载创建挂载文件获取配置文件创建docker容器拷贝容器中的配置文件删除容器 创建运行容器开放端口进行代理和测试 Windows版本的使用反向代理多个端口运行日志查看启动关闭重启 负载…...

Zebec Protocol:模块化 L3 链 Nautilus Chain,深度拓展流支付体系

过去三十年间&#xff0c;全球金融科技领域已经成熟并迅速增长&#xff0c;主要归功于不同的数字支付媒介的出现。然而&#xff0c;由于交易延迟、高额转账费用等问题愈发突出&#xff0c;更高效、更安全、更易访问的支付系统成为新的刚需。 此前&#xff0c;咨询巨头麦肯锡的一…...

Oracle-rolling upgrade升级19c

前言: 本文主要描述Oracle11g升19c rolling upgrade升级测试&#xff0c;通过逻辑DGautoupgrade方式实现rolling upgrade&#xff0c;从而达到在较少停机时间内完成Oracle11g升级到19c的目标 升级介绍&#xff1a; 升级技术: rolling upgrade轮询升级&#xff0c;通过采用跨版…...

Spring IOC详解

Spring 笔记 官网&#xff1a;https://spring.io/ 核心功能&#xff1a;当你的项目启动的时候&#xff0c;自动的将当前项目的各种 Bean 都自动的注册到 Spring 容器中&#xff0c;然后在项目的其他地方&#xff0c;如果需要用到这些 Bean&#xff0c;直接去 Spring 容器中查…...

Unity——DOTween插件使用方法简介

缓动动画既是一种编程技术&#xff0c;也是一种动画的设计思路。从设计角度来看&#xff0c;可以有以下描述 事先设计很多基本的动画样式&#xff0c;如移动、缩放、旋转、变色和弹跳等。但这些动画都以抽象方式表示&#xff0c;一般封装为程序函数动画的参数可以在使用时指定&…...

数据库——Redis 单线程模型详解

文章目录 Redis 基于 Reactor 模式来设计开发了自己的一套高效的事件处理模型 &#xff08;Netty 的线程模型也基于 Reactor 模式&#xff0c;Reactor 模式不愧是高性能 IO 的基石&#xff09;&#xff0c;这套事件处理模型对应的是 Redis 中的文件事件处理器&#xff08;file …...

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口 字符串的排列滑动窗口代码演示进阶优化版 上期经典 字符串的排列 难度 -中等 leetcode567. 字符串的排列 给你两个字符串 s1 和 s2 &#xff0c;写一个函数来判断 s2 是否包含 s1 的排列。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 换句…...

Git —— 分支重命名操作

在开发中&#xff0c;对某个分支进行重命名的操作&#xff1a; 1、本地分支重命名 本地分支是指&#xff1a;你当前这个分支还没有推送到远程的情况&#xff0c;这种情况修改分支名称就要方便很多 git branch -m 原始名称 新名称 //示例&#xff1a; 修改 test 为 newTest g…...

JavaIO流

JavaIO流 一、概念二、File类三、File类的使用1、File文件/文件夹类的创建2、File类的获取操作3、File类判断操作 - boolean4、File类对文件/文件夹的增删改5、File类的获取子文件夹以及子文件的方法 四、Java中IO流多种维度的维度1、按照流向 - Java程序2、按照流的大小分类3、…...

FlinkSql 如何实现数据去重?

摘要 很多时候flink消费上游kafka的数据是有重复的&#xff0c;因此有时候我们想数据在落盘之前进行去重&#xff0c;这在实际开发中具有广泛的应用场景&#xff0c;此处不说详细代码&#xff0c;只粘贴相应的flinksql 代码 --********************************************…...

机器学习概念

目录 一、人工智能、机器学习、深度学习的关系 二、什么是深度学习&#xff1f; 2.1 深度学习常用算法 一、人工智能、机器学习、深度学习的关系 人工智能、机器学习和深度学习的关系如下所示。 二、什么是深度学习&#xff1f; 深度学习( DL, Deep Learning) 是机器学习 …...

【数据结构】排序(插入、选择、交换、归并) -- 详解

一、排序的概念及其运用 1、排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记…...

游戏中的图片打包流程,免费的png打包plist工具,一款把若干资源图片拼接为一张大图的免费工具

手机游戏开发中&#xff0c;为了提高图片渲染性能&#xff0c;经常需要将小图片合并成一张大图进行渲染。如果手工来做的话就非常耗时。TexturePacker就是一款非常不错方便的处理工具。TexturePacker虽然非常优秀&#xff0c;但不是免费的。 对于打包流程&#xff0c;做游戏的…...

Springboot实现ENC加密

Springboot实现ENC加密 1、导入依赖2、配置加密秘钥&#xff08;盐&#xff09;3、获取并配置密文4、重启项目测试5、自定义前缀、后缀6、自定义加密方式 1、导入依赖 关于版本&#xff0c;需要根据spring-boot版本&#xff0c;自行修改 <dependency><groupId>co…...

nginx 托管vue项目配置

server {listen 80;server_name your_domain.com;location / {root /path/to/your/vue/project;index index.html;try_files $uri $uri/ /index.html;} }奇怪的现象,在vue路由中/会跳转到/abc/def&#xff0c;但如果直接输入/abc/def会显示404&#xff0c;添加 try_files $uri…...

Vue3中如何进行封装?—组件之间的传值

用了很久一段时间Vue3Ts了&#xff0c;工作中对一些常用的组件也进行了一些封装&#xff0c;这里对封装的一些方法进行一些简单的总结。 1.props传递 首先在主组件进行定义传值 <template><div>这里是主组件<common :first"first"></common&…...

实训笔记8.25

实训笔记8.25 8.25笔记一、Flume数据采集技术1.1 Flume实现数据采集主要借助Flume的组成架构1.2 Flume采集数据的时候&#xff0c;核心是编写Flume的采集脚本xxx.conf1.2.1 脚本文件主要由五部分组成 二、Flume案例实操2.1 采集一个网络端口的数据到控制台2.1.1 分析案例的组件…...

vue自定义监听元素宽高指令

在 main.js 中添加 // 自定义监听元素高度变化指令 const resizerMap new WeakMap() const resizeObserver new ResizeObserver((entries) > {for (const entry of entries) {const handle resizerMap.get(entry.target)if (handle) {handle({width: entry.borderBoxSiz…...

网络爬虫到底是个啥?

网络爬虫到底是个啥&#xff1f; 当涉及到网络爬虫技术时&#xff0c;需要考虑多个方面&#xff0c;从网页获取到最终的数据处理和分析&#xff0c;每个阶段都有不同的算法和策略。以下是这些方面的详细解释&#xff1a; 网页获取&#xff08;Web Crawling&#xff09;&#x…...

前端行级元素和块级元素的基本区别

块级元素和行内元素的基本区别是&#xff0c; 行内元素可以与其他行内元素并排&#xff1b;块级元素独占一行&#xff0c;不能与其他任何元素并列&#xff1b; 下面看一下&#xff1b; <!DOCTYPE html> <html> <head> <meta charset"utf-8"&…...

CentOS 7用二进制安装MySQL5.7

[rootlocalhost ~]# [rootlocalhost ~]# ll 总用量 662116 -rw-------. 1 root root 1401 8月 29 19:29 anaconda-ks.cfg -rw-r--r--. 1 root root 678001736 8月 29 19:44 mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz [rootlocalhost ~]# tar xf mysql-5.7.40-linux-…...

华为加速回归Mate 60发布, 7nm全自研工艺芯片

华为于今天12:08推出“HUAWEI Mate 60 Pro先锋计划”&#xff0c;让部分消费者提前体验。在华为商城看到&#xff0c;华为Mate 60 pro手机已上架&#xff0c;售价6999元&#xff0c;提供雅川青、白沙银、南糯紫、雅丹黑四种配色供选择。 据介绍&#xff0c;华为在卫星通信领域…...

Linux系列讲解 —— 【systemd】下载及编译记录

Ubuntu18.04的init程序合并到了systemd中&#xff0c;本篇文章记录一下systemd的下载和编译。 1. 下载systemd源码 (1) 查看systemd版本号&#xff0c;用来确定需要下载的分支 sunsun-pc:~$ systemd --version systemd 237 PAM AUDIT SELINUX IMA APPARMOR SMACK SYSVINIT UT…...

u-view 的u-calendar 组件设置默认日期后,多次点击后,就不滚动到默认日期的位置

场景&#xff1a;uniapp开发微信小程序 vue2 uview版本&#xff1a;2.0.36 &#xff1b; u-calendar 组件设置默认日期后 我打开弹窗&#xff0c;再关闭弹窗&#xff0c; 重复两次 就不显示默认日期了 在源码中找到这个位置进行打印值&#xff0c;根据出bug前后的值进行…...

vue naive ui 按钮绑定按键

使用vue (naive ui) 绑定Enter 按键 知识点: 按键绑定Button全局挂载使得message,notification, dialog, loadingBar 等NaiveUI 生效UMD方式使用vue 与 naive ui将vue默认的 分隔符大括号 替换 为 [[ ]] <!DOCTYPE html> <html lang"en"> <head>…...

Viobot基本功能使用及介绍

设备拿到手当然是要先试一下效果的&#xff0c;这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧&#xff01; 1.状态 设备上电会自动运行它的程序&#xff0c;开启了一个服务器&#xff0c;上位机通过连接这个服务器连接到设备&#xff0c…...

《PMBOK指南》第七版12大原则和8大绩效域

《PMBOK指南》第七版12大原则 原则1&#xff1a;成为勤勉、尊重和关心他人的管家 原则2&#xff1a;营造协作的项目团队环境 原则3&#xff1a;有效地干系人参与 原则4&#xff1a;聚焦于价值 原则5&#xff1a;识别、评估和响应系统交互 原则6&#xff1a;展现领导力行为…...

docker 启动命令

cd /ycw/docker docker build -f DockerFile -t jshepr:1.0 . #前面测试docker已经介绍过该命令下面就不再介绍了 docker images docker run -it -p 7003:9999 --name yyy -d jshepr:1.0 #上面运行报错 用这个 不报错就不用 docker rm yyy docker ps #查看项目日志 docker …...

C++ DAY7

一、类模板 建立一个通用的类&#xff0c;其类中的类型不确定&#xff0c;用一个虚拟类型替代 template<typename T> 类template ----->表示开始创建模板 typename -->表明后面的符号是数据类型&#xff0c;typename 也可以用class代替 T ----->表示数据类型…...

Vue2 使用插件 Volar 报错:<template v-for> key should be placed on the <template> tag.

目录 问题描述 版本描述 问题定位 问题解决 VS Code 插件地址 问题描述 在 VS Code 上使用插件 Volar 开发 Vue3 项目&#xff0c;然后去改 Vue2 项目时&#xff0c;对没有放在<template v-for> 元素上的 :key&#xff0c;会提示 <template v-for> key should…...

启动线程方法 start ()和 run ()有什么区别

在Java中,线程可以通过调用start()方法或者直接调用run()方法来执行。这两种方式有着重要的区别: start() 方法:当你调用线程的start()方法时,它会使线程进入就绪状态,等待系统调度。系统会为该线程分配资源,并在合适的时机执行线程的run()方法。实际上,start()方法会启…...

Java的全排列模板

c有全排列函数&#xff0c;我们Java没有&#xff0c;所以我们只能自己手写了。 模板一&#xff1a;&#xff08;不去重&#xff09; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class liyunpeng {public static void main(Stri…...

读书笔记——《万物有灵》

前言 上一本书是《走出荒野》&#xff0c;太平洋步道女王提到了这本书《万物有灵》&#xff0c;她同样是看一点撕一点的阅读。我想&#xff0c;在她穿越山河森林&#xff0c;听见鸟鸣溪流的旅行过程中&#xff0c;是不是看这本描写动物有如何聪明的书——《万物有灵》&#xf…...

面试现场表现:展示你的编程能力和沟通技巧

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

34亿的mysql表如何优雅的扩字段长度兵并归档重建

业务背景&#xff1a; 该系统有一张表数据量已达到34亿&#xff0c;并且有个字段长度不够&#xff0c;导致很多数据无法插入。因为业务只要保留近2个月数据即可&#xff0c;所以需要接下来需要做2点&#xff1a;1&#xff0c;扩字段长度 2&#xff0c;只保留近2个月的数据。 …...

C#_进程单例模式.秒懂Mutex

什么是Mutex? 可以定义调用线程是否具有互斥性&#xff0c;程序创建者拥有控制权&#xff0c;相反只能引用程序。 参数1&#xff1a;如果是程序创建者&#xff0c;就获得控制权。 参数2&#xff1a;名称&#xff0c;可使用GUID生成。 参数3&#xff1a;out 返回值&#xf…...

AcWing 5050. 排序 (每日一题)

题目描述 给定一个长度为 n 的由小写字母构成的字符串。 请你按照 a∼z 的顺序&#xff0c;对字符串内的字符进行重新排序&#xff0c;并输出重新排序后的字符串。 输入格式 第一行包含整数 T &#xff0c;表示共有 T 组测试数据。 每组数据第一行包含整数 n 。 第二行包…...

【TypeScript】proxy 和 Reflect

proxy &#xff08;代理&#xff09; 和 Reflect &#xff08;反射&#xff09; 参数一样。 基本用法 let person { name: xx, age: 20} // proxy 支持对象&#xff0c;数组&#xff0c;函数&#xff0c;set&#xff0c;map // 代理对象的常用模式&#xff1a;前面一个对象&…...

STM32f103入门(5)定时器中断

STM32 TIM&#xff08;定时器/计数器&#xff09;模块的中断流程如下&#xff1a; 配置TIM寄存器&#xff1a;首先&#xff0c;通过配置TIM相关的寄存器来设置计时器的基本参数&#xff0c;例如预分频系数、计数模式、计数器周期等。 使能TIM中断&#xff1a;使用TIM_ITConfig函…...

Mybatis查询数据

上一篇我们介绍了在pom文件中引入mybatis依赖&#xff0c;配置了mybatis配置文件&#xff0c;通过读取配置文件创建了会话工厂&#xff0c;使用会话工厂创建会话获取连接对象读取到了数据库的基本信息。 如果您需要对上面的内容进行了解&#xff0c;可以参考Mybatis引入与使用…...

【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了

文章目录 为什么看这篇整体流程1. 注册账号【首次需要】2. 工单申请【新项目必须】3. 项目配置【新项目必须】4. 授权认证【新项目必须】5. 一键发布 最后也很重要 为什么看这篇 一是当前网络上一些博客有遗漏部分&#xff0c;这里做补充&#xff0c;二是网上思路没错&#xff…...

如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!

如何理解IaaS、PaaS、SaaS&#xff1f;他们各自的优势在哪里&#xff1f;我们又应该如何选择&#xff1f;本篇将带大家深入浅出的了解IaaS、PaaS、SaaS&#xff0c;并为大家盘点2023最受欢迎的SaaS平台。 通过本文你将了解&#xff1a; IaaS、PaaS、SaaS分别是什么我们该如何理…...

立创EDA专业版的原理图上器件有一个虚线框

立创EDA专业版的原理图上器件有一个虚线框解决方法 问题分析&#xff1a; 在使用立创EDA专业版 设计电路原理图时&#xff0c;中途莫名其妙就给我的元件添加了下面图片所示的虚线外框。看着就很别扭的样子&#xff0c;而且工程大了和器件稍微布局比较密的时候就导致整体很难看…...

JUC并发编程--------基础篇

一、多线程的相关知识 栈与栈帧 我们都知道 JVM 中由堆、栈、方法区所组成&#xff0c;其中栈内存是给谁用的呢&#xff1f;其实就是线程&#xff0c;每个线程启动后&#xff0c;虚拟 机就会为其分配一块栈内存。 每个栈由多个栈帧&#xff08;Frame&#xff09;组成&#xf…...

秒懂算法2

视频链接 : 希望下次秒懂的是算法题_哔哩哔哩_bilibili P1094 [NOIP2007 普及组] 纪念品分组 原题链接 : [NOIP2007 普及组] 纪念品分组 - 洛谷 思路 : 排序 贪心 双指针首先先对输入进来的数组进行排序(由小到大)运用贪心的思想 : 前后结合,令l1,rn,若a[l]a[r]<w…...

隐秘的角落:Java连接Oracle提示Connection timed out

前言 这个报错相信各位后端开发都不陌生&#xff0c;大体的原因就那么几种&#xff1a; 检查网络连接&#xff1a;确保您的计算机与数据库服务器之间的网络连接正常。尝试通过其他方式验证您的网络连接是否正常。 检查数据库服务器状态&#xff1a;确保数据库服务器正在运行&…...

基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic

摘 要 随着消费升级&#xff0c;越来越多的年轻人已经开始不再看重餐饮等行业的服务&#xff0c;而是追求一种轻松自在的用餐、购物环境。因此&#xff0c;无人餐厅、无人便利店、无人超市等一些科技消费场所应势而生。餐饮企业用工荒已成为不争的事实。服务员行业的低保障、低…...

科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知

原创 | 文 BFT机器人 近日&#xff0c;四川省科学技术厅发布了2024年第一批省级科技计划项目申报指南&#xff1b;其中包括自然科学基金项目、重点研发计划、科技成果转移转化引导计划、科技创新基地&#xff08;平台&#xff09;和人才计划。 01 自然科学基金项目 实施周期 …...

深入了解Webpack:特性、特点和结合JS混淆加密的实例

Webpack是现代前端开发中最受欢迎的构建工具之一&#xff0c;其强大的特性和灵活性使得开发者能够更有效地管理和优化项目资源。在本文中&#xff0c;我们将深入探讨Webpack的特性和特点&#xff0c;并结合实例演示如何使用Webpack与JS混淆加密相结合。Webpack的特性和特点 1.…...