c语言经典100例
1.字符串转为数字
#include <stdio.h>int strToInt(char *s)
{int num=0;int sign=1;int step=1;if (*s == '-'){sign = -1;s++;}while (*s >= '0'&&*s <= '9'){num = num*10+(*s-'0');step += 10;s++;}return num*sign;
}int main()
{char a[10] = "-1234";char *s =a ;printf("字符型:%s,整形:%d",s,strToInt(s));return 0;
}
2.二维字符数组转一维数组
#include <stdio.h>
#include <stdlib.h>int main()
{char a[3][3] = { 'w','w','w','a','a','a','l','l','l'};char n[10] = "";for (int i = 0,m=0; i < 3; ++i){for (int j = 0; j < 3; ++j){printf("%c",a[i][j]);n[m] = a[i][j];m++;}printf("\n");}n[9] = '\0';printf("%s\n",n);return 0;
}
3.数字转换为字符串
#include <stdio.h>void intToString(int num, char *str) {int i = 0;int isNegative = 0;// 处理负数if (num < 0) {isNegative = 1;num = -num; // 将负数转为正数}// 转换整数为字符串do {str[i++] = (num % 10) + '0'; // 获取当前数字并转换为字符num /= 10; // 去掉当前的最后一位数字} while (num > 0);// 如果是负数,添加负号if (isNegative) {str[i++] = '-';}// 添加字符串结束符str[i] = '\0';// 反转字符串for (int j = 0; j < i / 2; j++) {char temp = str[j];str[j] = str[i - j - 1];str[i - j - 1] = temp;}
}int main() {int number = -12345; // 示例整数char str[20]; // 确保足够大以存放转换结果intToString(number, str); // 调用转换函数printf("整数转换的字符串为:%s\n", str); // 输出结果return 0;
}
4.统计一行字符串中单词的个数
#include <stdio.h>int main()
{char a[] = "hello world my man!";char *pa = a;int count = 0;int inWord = 0; // 用于跟踪是否在单词内部while (*pa != '\0') // 直到字符串的结尾{if (*pa == ' ' || *pa == '\t' || *pa == '\n') // 如果是空格、制表符或换行符{inWord = 0; // 不在单词内部}else{if (inWord == 0) // 进入一个新单词{count++;inWord = 1; // 现在在单词内部}}pa++; // 移动到下一个字符}printf("单词的数量为:%d\n", count);return 0;
}
5.删除数组中相同的数
#include <stdio.h>
#include <stdlib.h>void del(int *a, int size) {int *temp = (int*)malloc(size * sizeof(int)); // 临时数组,用于存储去重后的结果int pre = 0;int rear = 1;int j = 0;// 第一个元素肯定是要保留的temp[j++] = a[pre];// 遍历数组while (rear < size) {if (a[pre] != a[rear]) { // 如果当前元素和前一个元素不同temp[j++] = a[rear]; // 保存不重复的元素pre = rear; // 更新前指针}rear++; // 后指针继续前进}// 输出去重后的数组printf("去重后的数组: ");for (int i = 0; i < j; i++) {printf("%d ", temp[i]);}printf("\n");free(temp); // 释放动态分配的内存
}int main() {int a[] = {1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9};int size = sizeof(a) / sizeof(a[0]); // 计算数组大小del(a, size); // 调用函数删除重复元素return 0;
}
6.移动字符串中的内容
#include <stdio.h>void moveBack(int m, char *p)
{char temp[24]; // 临时数组用于保存前 m 个字符int n = 0; // 用于计算字符串长度// 手动计算字符串长度while (p[n] != '\0') {n++;}if (m > n) m = n; // 确保 m 不会大于字符串的长度// 复制前 m 个字符到 temp 中for (int i = 0; i < m; ++i) {temp[i] = p[i];}// 将后面的字符向前移动for (int i = m; i < n; ++i) {p[i - m] = p[i];}// 将 temp 中的前 m 个字符放到末尾for (int i = 0; i < m; ++i) {p[n - m + i] = temp[i];}// 重新设置字符串的结尾p[n] = '\0';
}int main() {char str[] = "world hello ";printf("前:%s\n", str);moveBack(6, str);printf("后:%s\n", str);return 0;
}
7.无符号整数去掉最高位
#include <stdio.h>unsigned int fun(unsigned int a)
{int b=1;int temp = a;while (temp/10>=10){b *= 10;temp /= 10;}b=b *10;a=a%b;return a;
}int main() {printf("%d", fun(7894));return 0;
}
8.打印下三角
#include <stdio.h>void xiasanjiao(int a[4][4])
{for (int i=0;i<4;++i){for (int j=0; j <=i ; ++j){printf("%d ",a[i][j]);}printf("\n");}}int main()
{int a[4][4] = {8,0,0,0,8,8,0,0,8,8,8,0,8,8,8,8};for (int i = 0; i < 4; ++i){for (int j = 0; j <4; ++j){printf("%d ", a[i][j]);}printf("\n");}printf("下三角:\n");xiasanjiao(a);return 0;
}
9.移动数组中的内容
#include <stdio.h>void moveBack(int a[10], int m) {int b[10] = { 0 };// 复制前 m 个元素到 bfor (int i = 0; i < m; ++i) {b[i] = a[i];}// 将后面的元素向前移动 m 位for (int i = m; i < 10; ++i) {a[i - m] = a[i];}// 将 b 中的元素放到数组的后 m 位for (int i = 0; i < m; ++i) {a[10 - m + i] = b[i];}
}int main() {int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };moveBack(a, 3);for (int i = 0; i < 10; ++i) {printf("%d ", a[i]);}return 0;
}
10.删除字符串中的空格
#include <stdio.h>void delSpace(char* a) {char* original = a; // 保存原始字符串指针char* result = a; // 用于存储处理后的结果// 遍历原始字符串while (*a != '\0') {if (*a != ' ' && *a != '\t') { // 只复制非空格和非制表符字符*result++ = *a; // 复制字符到结果字符串}a++;}*result = '\0'; // 添加字符串结束符
}int main() {char a[] = "h iph o p";delSpace(a);printf("%s\n", a); // 打印处理后的字符串return 0;
}
11.字符串是否回文
#include <stdio.h>int huiwen(char* a) {int count=0;while (a[count] != '\0') {count++;}for (int i=0;i<count/2;++i){if (a[i] != a[count - i-1])return 0;}return 1;
}int main() {char a[] = "hiphop";printf("%d\n", huiwen(a)); // 打印处理后的字符串return 0;
}
12.找出链表中的最大值
#include <stdio.h>typedef struct stu {int data;struct stu *next;
} Student;// 查找链表中的最大值
int findMax(Student* h) {if (h == NULL) {return -1; // 如果链表为空,返回特殊值 -1 表示无数据}int max = h->data; // 假设第一个节点的数据为最大值Student *current = h->next;// 遍历链表while (current != NULL) {if (current->data > max) {max = current->data; // 更新最大值}current = current->next; // 移动到下一个节点}return max;
}int main() {// 创建链表节点Student s1, s2, s3;Student* h;s1.data = 120;s2.data = 130;s3.data = 140;// 设置链表指针h = &s1;s1.next = &s2;s2.next = &s3;s3.next = NULL; // 最后一个节点的 next 为 NULL// 查找链表中的最大值并打印printf("链表中的最大值是: %d\n", findMax(h));return 0;
}
13.字符按ASCII码表排序
#include <stdio.h>// 手动计算字符串长度的函数
int my_strlen(char *str) {int len = 0;while (str[len] != '\0') {len++;}return len;
}// 排序中间字符的函数(降序)
void sort_desc(char *arr, int len) {for (int i = 0; i < len - 1; i++) {for (int j = i + 1; j < len; j++) {if (arr[i] < arr[j]) {// 交换字符char temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}
}void fun(char str[]) {// 手动获取字符串长度int len = my_strlen(str);// 确保字符串长度为7if (len != 7) {printf("字符串长度错误\n");return;}// 提取首尾字符char first = str[0];char last = str[6];// 提取中间5个字符到一个数组中char middle[6]; // 5个字符 + 1个终止符for (int i = 0; i < 5; i++) {middle[i] = str[i + 1]; // 从 str[1] 开始}middle[5] = '\0'; // 手动添加字符串结束符// 对中间字符进行按ASCII码降序排序sort_desc(middle, 5);// 输出结果:首字符 + 排序后的中间部分 + 尾字符printf("%c%s%c\n", first, middle, last);
}int main() {char str[] = "CEAedca";fun(str); // 调用函数进行排序return 0;
}
14.成绩表中挑出某分数段的人
#include <stdio.h>// 定义学生结构体
typedef struct {int id; // 学号int score; // 成绩
} Student;// 函数 fun:筛选分数在指定范围内的学生,并返回人数
int fun(Student a[], int N, Student b[], int low, int high) {int count = 0; // 用于统计符合条件的学生人数// 遍历学生数组for (int i = 0; i < N; i++) {// 如果学生成绩在指定范围内(包含 low 和 high)if (a[i].score >= low && a[i].score <= high) {// 将该学生记录放入 b 数组中b[count] = a[i];count++; // 增加符合条件的学生数量}}// 返回符合条件的学生人数return count;
}int main() {// 假设有 5 个学生,主函数中已初始化Student a[5] = {{1, 55},{2, 65},{3, 70},{4, 66},{5, 60}};Student b[5]; // 用于存储符合条件的学生int low = 60; // 分数下限int high = 69; // 分数上限// 调用 fun 函数,筛选分数范围内的学生int count = fun(a, 5, b, low, high);// 输出符合条件的学生数据printf("符合分数范围 %d 到 %d 的学生有 %d 名:\n", low, high, count);for (int i = 0; i < count; i++) {printf("学号: %d, 成绩: %d\n", b[i].id, b[i].score);}return 0;
}
15.字符串中删除ASCII码为奇数的
#include <stdio.h>
#include <stdlib.h> // 包含 malloc 函数char *oushu(char *a) {int i = 0, count = 0;// 分配足够的内存,假设最多有16个偶数字符char *result = (char *)malloc(sizeof(char) * 16);// 遍历字符串,找到偶数ASCII码值的字符while (*a != '\0') {if (*a % 2 == 0) { // 判断是否为偶数ASCII字符result[count + 1] = *a; // 存储在result数组中count++;}a++;}// 第一个位置存储偶数字符的数量result[0] = count;return result;
}int main() {char a[] = "abcdef"; // 示例字符串// 调用函数获取偶数字符char *p = oushu(a);// 输出偶数字符for (int i = 1; i <= p[0]; ++i) {printf("%c\n", p[i]);}// 释放动态分配的内存free(p);return 0;
}
16.找出链表中的最小值(可能不止一个)
#include <stdio.h>typedef struct stu {int data;struct stu *next;
} Student;int findMin(Student* h) {if (h == NULL) {return -1; }int min = h->data; int count = 0;Student *current = h->next;// 遍历链表while (current != NULL) {if (current->data < min) {min = current->data; }current = current->next; }current = h;while (current != NULL) {if (current->data == min) {count++;}current = current->next; // 移动到下一个节点}return count;
}int main() {// 创建链表节点Student s1, s2, s3;Student* h;s1.data = 120;s2.data = 120;s3.data = 120;// 设置链表指针h = &s1;s1.next = &s2;s2.next = &s3;s3.next = NULL; printf("链表中的最小值是: %d\n", findMin(h));return 0;
}
17.字符串后移
#include <stdio.h>void fun(char *s) {int i = 0, j = 0;int star_count = 0;// 统计前导的 * 号数量while (s[i] != '\0') {if (s[i] == '*') {star_count++;}else {// 将非 * 的字符依次移动到最前面s[j++] = s[i];}i++;}// 在字符串的后面填充前导的 * 号while (star_count--) {s[j++] = '*';}// 添加字符串的结束符号s[j] = '\0';
}int main() {char str[] = "******A*BC*DEF*G***";printf("原字符串: %s\n", str);fun(str);printf("处理后字符串: %s\n", str);return 0;
}
18.删除指定位置的字符
#include <stdio.h>
#include <stdlib.h>char* fun(char *s1, char* s2, int n) {int i = 0, j = 0;n = n - 1;// 遍历字符串 s1while (s1[i] != '\0') {// 跳过第 n 个字符if (i == n) {i++; // 跳过 s1 的第 n 个字符continue;}s2[j] = s1[i]; // 将字符从 s1 复制到 s2i++;j++;}s2[j] = '\0'; // 添加字符串结束符return s2;
}int main() {char str[] = "haiphop";char *str2 = (char*)malloc((sizeof(str)) * sizeof(char));if (str2 == NULL) {printf("内存分配失败!\n");return 1;}printf("原字符串: %s\n", str);fun(str, str2, 2);printf("处理后字符串: %s\n", str2);free(str2); return 0;
}
19.找出最长的字符串
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>void findLongestString(char *strings[], int count, char **max) {*max = strings[0]; // 默认第一个字符串为最长int maxLength = strlen(strings[0]);for (int i = 1; i < count; i++) {int currentLength = strlen(strings[i]);if (currentLength > maxLength) {maxLength = currentLength;*max = strings[i]; // 更新最长字符串}}
}int main() {char *strings[100]; // 假设最多输入100个字符串int count = 0;char *input;printf("请输入字符串(输入**结束):\n");while (1) {input = (char *)malloc(100 * sizeof(char)); // 分配内存存储输入字符串scanf("%s", input);if (strcmp(input, "**") == 0) {free(input); // 释放内存break; // 输入结束}strings[count++] = input; // 存储输入的字符串}char *longest;findLongestString(strings, count, &longest);printf("最长的字符串是:%s\n", longest);// 释放分配的内存for (int i = 0; i < count; i++) {free(strings[i]);}return 0;
}
20.阶乘
#include <stdio.h>int jiechen(int a)
{if (a == 1)return 1;return a * jiechen(a-1);
}int main() {printf("%d",jiechen(5));return 0;
}
21.移动零
void moveZeroes(int* nums, int numsSize) {int insertPos = 0;// 遍历数组,将非零元素按顺序放在数组前面for (int i = 0; i < numsSize; i++) {if (nums[i] != 0) {nums[insertPos] = nums[i];insertPos++;}}// 剩下的元素全部填为0for (int i = insertPos; i < numsSize; i++) {nums[i] = 0;}
}
22.无重复字符的最长子串
#include <stdio.h>
#include <string.h>int lengthOfLongestSubstring(char *s) {int n = strlen(s);int maxLength = 0; // 记录最长子串的长度int left = 0; // 滑动窗口的左指针int charIndex[256]; // 记录字符上次出现的位置,假设字符集为ASCII码// 初始化字符位置为-1,表示未出现过for (int i = 0; i < 256; i++) {charIndex[i] = -1;}for (int right = 0; right < n; right++) {// 如果字符已经在当前窗口中出现,更新左指针位置if (charIndex[(int)s[right]] >= left) {left = charIndex[(int)s[right]] + 1;}// 更新字符出现的位置charIndex[(int)s[right]] = right;// 计算当前无重复字符子串的长度,并更新最大长度int currentLength = right - left + 1;if (currentLength > maxLength) {maxLength = currentLength;}}return maxLength;
}int main() {char s[] = "abcabcbb";int result = lengthOfLongestSubstring(s);printf("The length of the longest substring without repeating characters is: %d\n", result);return 0;
}
23.kmp算法
#include <stdio.h>
#include <string.h>// 构建部分匹配表(即next数组)
void buildNext(char *pattern, int *next, int m) {int j = 0;next[0] = 0; // 第一个元素的前缀长度为0for (int i = 1; i < m; i++) {// 当pattern[i]和pattern[j]不相等时,利用next数组回退while (j > 0 && pattern[i] != pattern[j]) {j = next[j - 1];}// 如果pattern[i]和pattern[j]相等,前缀长度加1if (pattern[i] == pattern[j]) {j++;}next[i] = j;}
}// KMP匹配过程
void kmpSearch(char *text, char *pattern) {int n = strlen(text);int m = strlen(pattern);int next[m];// 计算部分匹配表(next数组)buildNext(pattern, next, m);int j = 0; // 模式串的索引for (int i = 0; i < n; i++) { // 主串的索引// 当text[i]和pattern[j]不匹配时,利用next数组回退while (j > 0 && text[i] != pattern[j]) {j = next[j - 1];}// 如果匹配,则继续比较下一个字符if (text[i] == pattern[j]) {j++;}// 如果找到匹配模式串if (j == m) {printf("Found pattern at index %d\n", i - j + 1);j = next[j - 1]; // 继续寻找下一个匹配位置}}
}int main() {char text[] = "ABABDABACDABABCABAB";char pattern[] = "ABABCABAB";// 执行KMP匹配kmpSearch(text, pattern);return 0;
}
24.找出数组中出现次数超过数组下标一半的元素
思想:先排序
相关文章:

c语言经典100例
1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…...

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现
0x01 产品描述: 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能&#…...
【分布式微服务云原生】《Redis RedLock 算法全解析:应对时钟漂移与网络分区挑战》
《Redis RedLock 算法全解析:应对时钟漂移与网络分区挑战》 摘要: 本文深入探讨 Redis 的 RedLock 算法,详细阐述其步骤及工作原理,同时重点分析该算法如何处理时钟漂移和网络分区这两个常见的分布式系统问题。读者将通过本文深入…...

OceanBase 的写盘与传统数据库有什么不同?
背景 在数据库开发过程中,“写盘”是一项核心操作,即将内存中暂存的数据安全地转储到磁盘上。在诸如MySQL这样的传统数据库管理系统中,写盘主要有以下几步:首先将数据写入缓存池;其次,为了确保数据的完整性…...

用Java爬虫API,轻松获取taobao商品SKU信息
在电子商务的世界里,SKU(Stock Keeping Unit,库存单位)是商品管理的基础。对于商家来说,SKU的详细信息对于库存管理、价格策略制定、市场分析等都有着重要作用。taobao作为中国最大的电子商务平台之一,提供…...

OpenHarmony 入门——ArkUI 自定义组件内同步的装饰器@State小结(二)
文章大纲 引言一、组件内状态装饰器State1、初始化2、使用规则3、变量的传递/访问规则说明4、支持的观察变化的场景5、State 变量的值初始化和更新机制6、State支持联合类型实例 引言 前一篇文章OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结(一&…...

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符设备开发入门,点亮LED
【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符设备开发入门,点亮LED 文章目录 开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射,虚拟内存和硬件内存地址字符驱动旧字符驱动新字符驱动 应用程序开发…...
搬砖14、Python网络编程入门
网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复…...

Transformer: Attention is All you need
Transformer Transformer是基于Encoder-Decoder结构的,将Seq2Seq中的RNN/GRU部分更换为Self-Attention部分 位置编码 Positional Encoding Self-attention丢失了位置信息 CNN 卷积神经网络可以保存相邻的位置信息 RNN 是顺序输入的,是包含了位置信息…...
C++:排序算法
目录 一、插入排序 1.直接插入排序 2.希尔排序 二、交换排序 1.冒泡排序 2.快速排序 三、选择排序 1.简单选择排序 2.堆排序 四、归并排序 1.二路归并排序的递归实现 2.二路归并排序的非递归实现 一、插入排序 1.直接插入排序 直接插入排序的基本思想是ÿ…...

期货日内稳赢策略:双15交易法详解
Eagle Trader的考试不仅涵盖了CFD交易,期货交易的考生人数也颇为可观。与外汇市场相比,期货在国内市场的普及程度更高,参与的群体也更为广泛。这得益于期货市场在国内相对成熟的监管体系,使得交易员对期货有了更深入的了解和信任。…...

2024年10月第2个交易周收盘总结:怎样卖出!
计划自己的交易,交易自己的计划。 跟随市场而情绪波动,最终一定会导向失败! 连续、平稳、冷静地惯彻交易计划,比什么都重要! 交易本身是极其简单和清楚的,让事情变复杂的原因不是行情走势和交易本身&…...
mysql 不支持utf8mb4_0900_ai_ci
Unknowncollation:‘utf8mb4_0900_ai_ci’ 解决方案: 1. 升级mysql为8.0以上(不包含8.0) 2. 修改编码类型: utf8mb4_0900_ai_ci/utf8mb4_0900_ci 修改为utf8_general_ci utf8mb4修改为utf8 utf8mb4_0900_ai_ci 是一种 MySQL 数…...

第10篇:防火墙与入侵检测系统
目录 引言 10.1 防火墙的基本概念 10.2 防火墙的分类 10.3 防火墙策略的配置与实现 10.4 入侵检测系统(IDS) 10.5 防火墙与IDS的结合 10.6 总结 第10篇:防火墙与入侵检测系统 引言 在当今的数字世界中,网络安全已经成为企…...

Jmeter监控服务器性能
目录 ServerAgent 安装 打开Jmeter ServerAgent 在Jmeter上监控服务器的性能比如CPU,内存等我们需要用到ServerAgent,这里可以下载我分享 ServerAgent-2.2.3.zip 链接: https://pan.baidu.com/s/1oZKsJGnrZx3iyt15DP1IYA?pwdedhs 提取码: edhs 安装…...

通过前端UI界面创建VUE项目
通过前端UI界面创建VUE项目,是比较方面的一种方式,下面我们详细分析一下流程: 1、找到合适目录 右键鼠标,点击在终端打开 2、开始创建 输入 vue ui 浏览器弹出页面 3、点击Create项目 显示已有文件列表,另外可以点击…...
Python网络爬虫:分析淘宝商品热度与销量[进阶深度优化]
要更全面和深入地介绍基于Python的网络爬虫系统,分析淘宝商品买卖热度、销量以及统计热点关键词,我们可以进一步扩展内容,涵盖更多技术细节、优化策略、数据分析、以及机器学习的结合,形成一个功能强大、可靠的爬虫系统。下面是进一步的补充。 1. 爬虫策略的深度优化 为了…...
golang从http请求中读取xml格式的body,并转成json
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

RestTemplate 学习笔记
简介 RestTemplate是一个执行HTTP请求的同步阻塞式工具类,它仅仅只是在 HTTP 客户端库(例如 JDK HttpURLConnection,Apache HttpComponents,okHttp 等)基础上,封装了更加简单易用的模板方法 API,…...

数据抓取时,使用动态IP要注意哪些?
在充满竞争和数据驱动的商业环境中,动态IP已成为数据抓取过程中不可或缺的工具。动态IP的应用能有效提高抓取成功率,但同时也伴随着一系列需要注意的问题。在本文中,我们将详细探讨在数据抓取时使用动态IP时应注意的事项,以确保抓…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...