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

C语言中常用的字符串函数(strlen、sizeof、sscanf、sprintf、strcpy)

C语言中常用的字符串函数

文章目录

  • C语言中常用的字符串函数
    • 1 strlen函数
    • 2 sizeof函数
      • 2.1 sizeof介绍
      • 2.2 sizeof用法
    • 3 sscanf函数
      • 3.1 sscanf介绍
      • 3.2 sscanf用法
      • 3.3 sscanf高级用法
    • 4 sprintf函数
      • 4.1 背景
      • 4.2 sprintf用法
    • 5 strcpy函数
      • 5.1 strcpy介绍
      • 5.1 strcpy用法

1 strlen函数

  strlen即为string length,顾名思义该函数是用来求字符串长度的。在介绍strlen函数之前,我们要先介绍一下"\0"这个转义字符。任何一个字符串后面都会隐藏一个"\0",该转义字符是字符串结束的标志,所以我们在使用strlen函数求字符串长度时,遇到"\0"时停止读取,此时"\0"前的字符个数就是字符串的长度。

注意:
  这里的"\0"只是结束标志,并不算一个字符!

示例1:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{printf("%d\n", strlen("xxccyy"));system("pause");return 0;
}

在这里插入图片描述
我们将字符串"xxccyy"在内存的存储结构展示如下:
在这里插入图片描述

示例2:
  在c语言中,字符串并没有作为一种独立的数据类型进行定义。相反,字符串被表示为字符数组或字符指针。以下是两种常见的表示字符串的方法:

  1. 使用字符数组:
char str[20] = "Hello, World!"; // 声明一个字符数组来存储字符串
  1. 使用字符指针:
char *str = "Hello, World!"; // 声明一个指向字符的指针,指向字符串常量

  接下来我们介绍使用字符数组存储字符串的每一个字符,使用这种定义方式对于strlen的求解有何不同呢?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char arr1[] = {'x','x','c','c','y','y'};char arr2[] = {'x','x','c','c','y','y','\0'};printf("%d\n", strlen(arr1));printf("%d\n", strlen(arr2));system("pause");return 0;
}

在这里插入图片描述
  arr1数组只是单纯把字符串“abcdef”的每一个字符用数组存储起来,而arr2数组则是多存储了一个“\0",可以看到arr1数组的长度为9,arr2数组的长度为6,接下来我们将展示两个数组在内存中的存储状态。
在这里插入图片描述
在这里插入图片描述
   arr2数组的存储情况和示例1字符串的存储情况相同,而arr1却不同。对于arr2我们不进行说明,接下来我们分析下为什么arr1数组的长度为9。
  上文我们说过字符串结束标志为"\0",但是我们的arr1数组没有额外存储"\0",所以编译器在读取时,并不会像我们所期望的那样停止读取,故长度当然不会为6。但是为什么最终读取的长度为9,是因为在读取时,编译器读取完arr1时会继续往后读取,直到读取到”\0",arr1在读取完第9个字符后才会遇到”\0";由于每个人的电脑和编译器不同,读取的长度也不一样,所以arr1这种情况一般我们认为它读取的结果为随机值!

示例3:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{printf("%d\n", strlen("xcy\0zfr"));system("pause");return 0;
}

在这里插入图片描述

示例3是为了进一步说明字符串结束标志"\0"的重要性。

2 sizeof函数

2.1 sizeof介绍

  sizeof是计算变量在内存的占空间的大小,单位是字节。

2.2 sizeof用法

  • 使用sizeof查看数据类型占空间大小
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{printf("sizeof(char): %d\n", sizeof(char));printf("sizeof(short): %d\n", sizeof(short));printf("sizeof(int): %d\n", sizeof(int));printf("sizeof(long): %d\n", sizeof(long));printf("sizeof(long long): %d\n", sizeof(long long));printf("sizeof(float): %d\n", sizeof(float));printf("sizeof(double): %d\n", sizeof(double));system("pause");return 0;
}

在这里插入图片描述

  • 使用sizeof计算基本数据类型变量的占用空间的大小
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char c = 'a';int i = 1;short s = 1;long l = 1;long long ll = 1;float f = 1.0;double d = 1.0;printf("sizeof(c): %d\n", sizeof(c));printf("sizeof(s): %d\n", sizeof(s));printf("sizeof(i): %d\n", sizeof(i));printf("sizeof(l): %d\n", sizeof(l));printf("sizeof(ll): %d\n", sizeof(ll));printf("sizeof(f): %d\n", sizeof(f));printf("sizeof(d): %d\n", sizeof(d));system("pause");return 0;
}

在这里插入图片描述

  • 使用sizeof计算指针的占用空间大小
      需要注意的是,32位平台所有类型的指针的占用空间大小都是4个字节,64位平台所有类型的指针占用的空间大小为8个字节,观察如下代码:
#include <stdio.h>
#include <stdlib.h>int main()
{printf("sizeof(char*): %d\n", sizeof(char*));printf("sizeof(short*): %d\n", sizeof(short*));printf("sizeof(int*): %d\n", sizeof(int*));printf("sizeof(long*): %d\n", sizeof(long*));printf("sizeof(long long*): %d\n", sizeof(long long*));printf("sizeof(float*): %d\n", sizeof(float*));printf("sizeof(double*): %d\n", sizeof(double*));system("pause");return 0;
}

在这里插入图片描述

  • 计算数组元素的个数

如想得到数组的元素个数,有以下两种方法:
1.总长度/相对应的数据类型长度
2.总长度/首元素长度

#include <stdio.h>
#include <stdlib.h>int 	a[]={1,2,3,4,5};
short 	b[]={1,2,3,4,5};
long  	c[]={1,2,3,4,5};
float	d[]={1,2,3,4,5};
double  e[]={1,2,3,4,5};
char    f[]="12345";int main(void)
{printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d\n",sizeof(a)/sizeof(int), sizeof(b)/sizeof(short), sizeof(c)/sizeof(long),sizeof(d)/sizeof(float),sizeof(e)/sizeof(double),sizeof(f)/sizeof(char));printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d\n",sizeof(a)/sizeof(a[0]), sizeof(b)/sizeof(b[0]), sizeof(c)/sizeof(c[0]),sizeof(d)/sizeof(d[0]),sizeof(e)/sizeof(e[0]),sizeof(f)/sizeof(f[0]));system("pause");return 0;
}

在这里插入图片描述

3 sscanf函数

3.1 sscanf介绍

sscanf函数是C语言中的一个标准库函数,用于从格式化的字符串中读取输入。

sscanf的函数原型:

#include <stdio.h>
int sscanf(const char *str, const char *format, ...);

其中,str表示要读取的字符串,format表示格式控制字符串,…表示可变参数列表。

3.2 sscanf用法

  • 整形数据转换
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{int year, month, day;int converted = sscanf("20231215", "%04d%02d%02d", &year, &month, &day);printf("converted=%d, year=%d, month=%d, day=%d\n", converted, year, month, day);system("pause");return 0;
}

在这里插入图片描述
  “%04d%02d%02d"是用来解析字符串的格式,%表示格式转换的开始,d表示转换为一个整数,04作为d的修饰,表示这是一个长度为4位的整数,不足4位时以0补齐。
  返回值converted等于3,表示有3个数据成功转换,转换成功数目同时取决于被解析的字符串以及其转换格式,如果我们把例子中的格式改为”%04d%02d",那么sscanf将只返回2,day的数值不会被sscanf更改。

  • 浮点数转换
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{double longitude, latitude;int converted = sscanf("113.123456789,31.123456789", "%lf,%lf", &longitude, &latitude);printf("converted=%d, longitude=%.9lf, latitude=%lf\n", converted, longitude, latitude);system("pause");return 0;
}

在这里插入图片描述
sscanf的格式字符串中,f表示这是一个浮点数,其修饰词l表示这是一个double的浮点数。

3.3 sscanf高级用法

取到指定字符为止:运算符 %[ ]

  • 遇到空格为止
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char str[100];sscanf("Lucky xu123", "%[^ ]", str); //取遇到空格为止字符串    printf("str=%s\n", str); system("pause");return 0;
}

在这里插入图片描述

  • 遇到指定字符为止
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char str[100];sscanf("Lucky xu123", "%[^1]", str); //取遇到空格为止字符串    printf("str=%s\n", str); system("pause");return 0;
}

在这里插入图片描述
  我们设定运算符为% [^1] ,即遇到1截止,最终结果也符合预期。

  • 取仅包含指定字符集
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char str[100];sscanf("654321abcdedfABCDEF", "%[1-9a-z]", str); //只取数字和小写字符printf("str=%s\n", str);  system("pause");return 0;
}

在这里插入图片描述
[a-z]表示读取a-z的所有字符,[^a-z]表示读取除a-z以外的所有字符 。

  • 取到指定字符集为止
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char str[100];sscanf("BCDEF123456abcdedf", "%[^a-z]", str); //取遇到小写字母为止的字符串       printf("str=%s\n", str);   system("pause");return 0;
}

在这里插入图片描述

4 sprintf函数

4.1 背景

  在使用STM32驱动TFT屏幕时,发现厂家给的驱动函数只支持16位无符号整形数据,即可显示的范围为0~65535,那么我们想显示65535以外的数则需要自己写驱动函数,本着偷懒的原则我发现了厂家提供了字符串驱动函数,那么我们只需要将65535以外的数转为字符串进行显示即可。
在这里插入图片描述
这便需要使用我们的sprintf函数,sprintf的函数原型:

#include <stdio.h>
int sprintf( char *buffer, const char *format, [ argument]);

参数列表:
buffer:char型指针,指向欲写入的字符串地址。
format:char型指针,指向的内存里面存放了格式字符串。
[argument]…:可选参数,可以是任何类型的数据。
返回值:字符串长度(strlen)

4.2 sprintf用法

  • 将 %f 格式的数据写入到字符串中
#define _USE_MATH_DEFINES 1  //如果要使用<math.h>里面的宏,需要定义_USE_MATH_DEFINES 
#include <stdio.h>
#include <math.h>
#include <stdlib.h>int main()
{char str[80];sprintf(str, "Pi 的值 = %f", M_PI);puts(str);system("pause");return(0);
}

在这里插入图片描述

  • 字符串写入字符串中
#include <stdio.h>
#include <stdlib.h>int main()
{char dest[20];sprintf(dest, "Hello World!");puts(dest);system("pause");return 0;
}

在这里插入图片描述

  • 多个格式的写入
#include <stdio.h>
#include <stdlib.h>int main()
{int num = 886;char str[] = "byebye";char dest[20];sprintf(dest, "%s is %d", str, num);puts(dest);system("pause");return 0;
}

在这里插入图片描述

  • 观察函数的返回值

sprintf函数的返回值不包含目标字符串末尾自动添加的’\0’

#include <stdio.h>
#include <stdlib.h>int main()
{int num = 886;char str[] = "byebye";char dest[20];int len = sprintf(dest, "%s is %d", str, num);puts(dest);printf("len = %d\n", len);system("pause");return 0;
}

在这里插入图片描述

  • 指定起始目标字符串地址

当你想要在一个字符数组的某个位置开始时,那么第一个参数就要传对应位置的地址。

#include <stdio.h>
#include <stdlib.h>int main()
{char dest[40] = "I love ";char str[] = "this world!";sprintf(dest + 7, str);puts(dest);system("pause");return 0;
}

在这里插入图片描述

  • 格式化字符数组
#include <stdio.h>
#include <stdlib.h>int main()
{char a[100] = { 0 };sprintf(a, "你好,我是%s博主", "Jack.xu");printf("%s\n", a);system("pause");return 0;
}

在这里插入图片描述

  • 字符串的拼接
#include <stdio.h>
#include <stdlib.h>int main()
{char dest[100];char str1[] = "Hello";char str2[] = "World!";int len1 = sprintf(dest, "%s, % s", str1, str2);printf("%s\n%d\n", dest, len1);system("pause");return 0;
}

在这里插入图片描述

  • 数字转换成字符串
#include <stdio.h>
#include <stdlib.h>int main()
{unsigned int number = 655350;char buffer[10];sprintf(buffer, "%d", number);printf("%s\n",buffer);system("pause");return 0;
}

在这里插入图片描述
  在这里我们将655350转化为字符串。可以看出,利用sprinrf函数可以解决我们背景中的问题。

5 strcpy函数

5.1 strcpy介绍

   strcpy函数是将一个字符串复制到另一块空间地址中的函数,‘\0’是停止拷贝的终止条件,同时也会将 ‘\0’ 也复制到目标空间。
  strcpy的函数原型:

#include <string.h>
char *strcpy(char *dest, const char *src);

函数的参数:

  • char *dest------------目标字符串的首地址
  • const char *src------源地址:被复制的字符串的首地址,用const修饰,避免修改掉被拷贝的字符串

函数的返回值类型:

  • char*:返回的是目标字符串的首地址

5.1 strcpy用法

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{char arr[10] = { 0 };const char* p = "abcdef";strcpy(arr, p);printf("%s\n", arr);system("pause");return 0;
}

在这里插入图片描述

相关文章:

C语言中常用的字符串函数(strlen、sizeof、sscanf、sprintf、strcpy)

C语言中常用的字符串函数 文章目录 C语言中常用的字符串函数1 strlen函数2 sizeof函数2.1 sizeof介绍2.2 sizeof用法 3 sscanf函数3.1 sscanf介绍3.2 sscanf用法3.3 sscanf高级用法 4 sprintf函数4.1 背景4.2 sprintf用法 5 strcpy函数5.1 strcpy介绍5.1 strcpy用法 1 strlen函…...

域名解析服务器:连接你与互联网的桥梁

域名解析服务器&#xff1a;连接你与互联网的桥梁 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨一个网络世界中至关重要却鲜为人知的角…...

理论物理在天线设计和射频电路设计中的应用

理论物理的基本原理可以应用于电路中的电磁场分析和电磁波传播问题&#xff0c;例如天线设计和射频电路设计。通过应用麦克斯韦方程组和电磁波传播理论&#xff0c;可以优化电路的性能&#xff0c;提高天线的辐射效率和射频电路的传输效率。麦克斯韦方程组是描述电磁场行为的基…...

MySql01:初识

1.mysql数据库2.配置环境变量3. 列的类型和属性&#xff0c;索引&#xff0c;注释3.1 类型3.2 属性3.3 主键(主键索引)3.4 注释 4.结构化查询语句分类&#xff1a;5.列类型--表列类型设置 1.mysql数据库 数据库&#xff1a; ​ 数据仓库&#xff0c;存储数据&#xff0c;以前我…...

Python——运算符

num 1 num 1 print("num1:", num) num - 1 print("num-1:", num) num * 4 print("num*4:", num) num / 4 print("num/4:", num) num 3 num % 2 print("num%2:", num) num ** 2 print("num**2:", num) 运行结果…...

赋能软件开发:生成式AI在优化编程工作流中的应用与前景

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;特别是生成式AI模型如GPT-3/4的出现&#xff0c;软件开发行业正经历一场变革&#xff0c;这些模型通过提供代码生成、自动化测试和错误检测等功能&#xff0c;极大地提高了开发效率和软件质量。 本文旨在深入…...

通过盲对抗性扰动实时击败基于DNN的流量分析系统

文章信息 论文题目&#xff1a;Defeating DNN-Based Traffic Analysis Systems in Real-Time With Blind Adversarial Perturbations 期刊&#xff08;会议&#xff09;&#xff1a;30th USENIX Security Symposium 时间&#xff1a;2021 级别&#xff1a;CCF A 文章链接&…...

【Project】TPC-Online Module (manuscript_2024-01-07)

PRD正文 一、概述 本模块实现隧道点云数据的线上汇总和可视化。用户可以通过注册和登录功能进行身份验证&#xff0c;然后上传原始隧道点云数据和经过处理的数据到后台服务器。该模块提供数据查询、筛选和可视化等操作&#xff0c;同时支持对指定里程的分段显示和点云颜色更改…...

通过cpolar在公网访问本地网站

通过cpolar可以轻松将本地网址映射到公网进行访问&#xff0c;下面简要介绍一下实现步骤。 目录 一、cpolar下载 二、安装 三、使用 3.1 登录 3.2 创建隧道 一、cpolar下载 cpolar官网地址&#xff1a;cpolar - secure introspectable tunnels to localhost 通过QQ邮箱…...

Prokka: ubuntu安装的时候出现错误

[14:10:57] Running: cat /app/prokka_result/ref_file/ref_file.HAMAP.hmm.tmp.77.faa | parallel --gnu --plain -j 2 --block 108208 --recstart ‘>’ --pipe hmmscan --noali --notextw --acc -E 1e-09 --cpu 1 /opt/prokka/db/hmm/HAMAP.hmm /dev/stdin > /app/pro…...

安全防御之密码技术

密码学是信息安全的基础技术之一&#xff0c;是达到信息系统安全等级保护要求的核心技术支持&#xff0c;在身份验证、访问控制、文件加密、数据加密和安全传输中都得到广泛应用。其核心目标是保证信息的机密性、完整性和可用性。 密码学包括加密和解密两个部分。一般过程是&am…...

一文读懂「多模态大模型」

​ 学习资源 5-多模态大模型一统NLP和CV 1.多模态大模型的基本原理 2.常见的多模态大模型 https://www.bilibili.com/video/BV1NN41177Zp?p5&vd_sourcef27f081fc77389ca006fcebf41bede2d 3.多模态大模型如_哔哩哔哩_bilibili 强强联手&#xff01;科大讯飞和中科院终于把【…...

深入PostgreSQL:高级函数用法探索

写在开头 在 PostgreSQL 中,函数是数据库开发和管理中强大而灵活的工具。通过深入了解高级函数用法,我们可以更有效地利用 PostgreSQL 的功能。在本文中,我们将探讨一些看起来比较高级的 PostgreSQL 函数用法,包括窗口函数、自定义聚合函数、JSONB 类型函数、全文搜索、PL…...

huggingface实战bert-base-chinese模型(训练+预测)

文章目录 前言一、bert模型词汇映射说明二、bert模型输入解读1、input_ids说明2、attention_mask说明3、token_type_ids说明4、模型输入与vocab映射内容二、huggingface模型数据加载1、数据格式查看2、数据dataset处理3、tokenizer处理dataset数据三、huggingface训练bert分类模…...

CCS安装和导入项目及编译教程

1. CCS安装# 在 TI官网 下载离线版&#xff08;offline&#xff09;。 Code Composer Studio Downloads 页面上有license 信息&#xff1a;这么看来是免费的&#xff0c;爱了爱了 Licensing: CCSv7 and later are Technology Software Publicly Available (TSPA) compliant.…...

在React里面使用mobx状态管理详细步骤

1、安装MobX和MobX React&#xff1a; 在你的项目目录下运行以下命令安装MobX和MobX React&#xff1a; npm install mobx mobx-react2、创建MobX Store&#xff1a; 创建一个用于管理状态的MobX Store。这个Store应该包含你希望全局管理的状态和相关的操作。以下是一个简单…...

1.6PTA集练7-5~7-24、7-1、7-2,堆的操作,部落冲突(二分查找)

7-5 大師と仙人との奇遇 分数 20 #include<iostream> #include<queue> using namespace std; int n; long long ans0,num; priority_queue<long long,vector<long long>,greater<long long>>q;//记录之前买的,用小顶堆&#xff0c;最上面就是最…...

uniapp向上拉加载,下拉刷新

目录 大佬1大佬2 大佬1 大佬地址&#xff1a;https://blog.csdn.net/wendy_qx/article/details/135077822 大佬2 大佬2&#xff1a;https://blog.csdn.net/chen__hui/article/details/122497140...

目标检测脚本之mmpose json转yolo txt格式

目标检测脚本之mmpose json转yolo txt格式 一、需求分析 在使用yolopose及yolov8-pose 网络进行人体姿态检测任务时&#xff0c;有时需要标注一些特定场景的中的人型目标数据&#xff0c;用来扩充训练集&#xff0c;提升自己训练模型的效果。因为单纯的人工标注耗时费力&…...

大数据技术在民生资金专项审计中的应用

一、应用背景 目前,针对审计行业,关于大数据技术的相关研究与应用一般包括大数据智能采集数据技术、大数据智能分析技术、大数据可视化分析技术以及大数据多数据源综合分析技术。其中,大数据智能采集数据技术是通过网络爬虫或者WebService接口实现跨部门在线数据交互;大数…...

视觉SLAM十四讲|【四】误差Jacobian推导

视觉SLAM十四讲|【四】误差Jacobian推导 预积分误差递推公式 ω 1 2 ( ( ω b k n k g − b k g ) ( w b k 1 n k 1 g − b k 1 g ) ) \omega \frac{1}{2}((\omega_b^kn_k^g-b_k^g)(w_b^{k1}n_{k1}^g-b_{k1}^g)) ω21​((ωbk​nkg​−bkg​)(wbk1​nk1g​−bk1g​)) …...

「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(一)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 在web项目中使用DHTMLX Gantt时&#xff0c;开发人员经常需要满足与UI外观相关的各种需求。因此他们必须确定JavaScript甘特图库的…...

【习题】应用程序框架

判断题 1. 一个应用只能有一个UIAbility。错误(False) 正确(True)错误(False) 2. 创建的Empty Ability模板工程&#xff0c;初始会生成一个UIAbility文件。正确(True) 正确(True)错误(False) 3. 每调用一次router.pushUrl()方法&#xff0c;页面路由栈数量均会加1。错误(Fal…...

java基于ssm的线上选课系统的设计与实现论文

摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对学生选课信息管理的提升&#x…...

汽车雷达:实时SAR成像的实现

摘要: 众所周知,点云成像是目前实现汽车雷达感知最流行的方案,尤其是采用多级联实现的4D点云成像雷达,这是目前最有希望实现产品落地的技术方案之一。 今天重点分享关于汽车雷达SAR成像相关技术内容,这也证实了4D点云成像雷达并不一定就是汽车雷达成像唯一的方案,在业内…...

《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计

2-15 编写一个程序&#xff0c;运行时提示输入一个数字&#xff0c;再把这个数字显示出来。 #include <iostream>using namespace std;int main() {// 提示用户输入数字cout << "请输入一个数字: ";// 用于存储用户输入的数字的变量double number;// 从…...

2023年生成式AI全球使用报告

生成式人工智能工具正在迅速改变多个领域&#xff0c;从营销和新闻到教育和艺术。 这些工具使用算法从大量培训材料中获取新的文本、音频或图像。虽然 ChatGPT 和 Midjourney 之类的工具可以用来实现超出人类能力或想象力的艺术效果&#xff0c;但目前它们最常用于比人类更轻松…...

安全防御之漏洞扫描技术

每年都有数以千计的网络安全漏洞被发现和公布&#xff0c;加上攻击者手段的不断变化&#xff0c;网络安全状况也在随着安全漏洞的增加变得日益严峻。寻根溯源&#xff0c;绝大多数用户缺乏一套完整、有效的漏洞管理工作流程&#xff0c;未能落实定期评估与漏洞修补工作。只有比…...

SPON世邦 IP网络对讲广播系统 多处文件上传漏洞复现

0x01 产品简介 SPON世邦IP网络对讲广播系统是一种先进的通信解决方案,旨在提供高效的网络对讲和广播功能。 0x02 漏洞概述 SPON世邦IP网络对讲广播系统 addscenedata.php、uploadjson.php、my_parser.php等接口处存在任意文件上传漏洞,未经身份验证的攻击者可利用此漏洞上…...

Python综合数据分析_RFM用户分层模型

文章目录 1.数据加载2.查看数据情况3.数据合并及填充4.查看特征字段之间相关性5.聚合操作6.时间维度上看销售额7.计算用户RFM8.数据保存存储(1).to_csv(1).to_pickle 1.数据加载 import pandas as pd dataset pd.read_csv(SupplyChain.csv, encodingunicode_escape) dataset2…...

广告专业的前景和就业方向/seo的作用有哪些

中国人是可以做开源的&#xff0c;因为中国人并不比谁笨&#xff01;也没有谁限制中国人不许做开源&#xff01;实事求是讲&#xff0c;中国人搞开源可以节省大量美元&#xff0c;是从实际出发&#xff0c;就好像国际石油 老涨价&#xff0c;太贵了&#xff0c;就会有人去发明煤…...

长沙中小企业网站建设/电商软文范例

dojo jquery该帖子现在已过时&#xff0c;仅保存在此处仅供娱乐之用。 总览 jQuery和DOJO都是JavaScript开发框架/程序包&#xff0c;它们提供的功能使JavaScript代码的编写更加轻松&#xff0c;快捷和高效。 两者都有优点和缺点&#xff0c;优点和缺点&#xff0c;但是在jQu…...

怎样说服老板做网站/黄山搜索引擎优化

一 什么会需要synchronized&#xff1f;什么场景下使用synchronized&#xff1f; 如上图所示&#xff0c;比如在王者荣耀程序中&#xff0c;我们队有二个线程分别统计后裔和安琪拉的经济&#xff0c;A线程从内存中read 当前队伍总经济加载到线程的本地栈&#xff0c;进行 100 操…...

图书馆网站开发策划书/摘抄一篇新闻

偏微分方程的数值解系列博文&#xff1a; 偏微分方程的数值解(一):定解问题 & 差分解法 偏微分方程的数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法 偏微分方程的数值解(三): 化工应用实例 ----------触煤反应装置内温度及转换率的分布 偏微分方程的数值解(四):…...

外贸做网站用什么/百度sem竞价推广

1;;写博客能让我慢下来,仔细思考 1;;这篇博客大多摘自网上 1;; 不管实在C还是C代码中&#xff0c;typedef这个词都不少见&#xff0c;当然出现频率较高的还是在C代码中。typedef与#define有些相似&#xff0c;但更多的是不同&#xff0c;特别是在一些复杂的用法上&#xff0c…...

wordpress 2011/app推广方式有哪些

Install Air Conditioning HDU - 4756 题意是要让n-1间宿舍和发电站相连 也就是连通嘛 最小生成树板子一套 但是还有个限制条件 就是其中有两个宿舍是不能连着的 要求所有情况中最大的那个 这是稠密图 用kruskal的时间会大大增加 所以先跑一遍prim 跑完之后对最小生成树里面的边…...