自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 拷贝文件(包括文件夹中的文件夹)

拷贝文件(包括文件夹中的文件夹)

2022-12-06 23:56:23 423 1

原创 拷贝文件(不考虑文件夹中有文件夹)后续有拷贝文件夹

文件的拷贝

2022-12-06 21:29:59 170

原创 static关键字

https://www.bilibili.com/video/BV1U44y1y7xN?p=23&spm_id_from=pageDriver&vd_source=48095c32d8f7553fa3edc9770e2c17dc

2022-08-31 23:39:40 151

原创 用C语言实现my_OFFSETOF

思路:有个struct类型的指针指向第一个成员,该成员的地址从0开始,内存是以字节为单位,那么其它成员所在的地址就是相对于结构体开头的字节偏移量,size_t是一些C/C++标准在stddef.h中定义的,size_t 类型表示C中任何对象所能达到的最大长度,它是无符号整数描述C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整型常量,它是一个结构成员相对于结构开头的字节偏移量。成员是由 member-designa...

2022-04-27 20:41:00 1022

原创 strrchr函数

<string.h>描述C 库函数 char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。声明下面是 strrchr() 函数的声明。char *strrchr(const char *str, int c)参数str -- C 字符串。 c -- 要搜索的字符。以 int 形式传递,但是最终会转换回 char 形式。返回值该函数返回 str 中最后一次.

2022-04-20 20:03:55 2042

原创 strchr函数

C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。声明下面是 strchr() 函数的声明。char *strchr(const char *str, int c)参数 str -- 要被检索的 C 字符串。 c -- 在 str 中要搜索的字符。返回值该函数返回在字符串 str 中第一次出现字符 c的位置,如果未找到该字符则返回 NULL。...

2022-04-20 20:01:24 141

原创 用C语言实现my_strstr

char* strstr(const char* dest, const char* src); 在字符串dest中,找src第一次出现在dest字符串的位置,并返回,不包含'\0'返回值:第一次在dest找到的地址,没有找到返回NULLdest--目标字符串src--所要查找字符串#include<stdio.h>#include<string.h>#include<assert.h>char* my_strstr(const char.

2022-04-19 11:20:32 429

原创 用C语言实现memset

描述C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。声明下面是 memset() 函数的声明。void *memset(void *str, int c, size_t n)参数 str -- 指向要填充的内存块。 c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。 n -- 要被设置...

2022-04-14 21:43:31 1127

原创 用C语言实现my_memcmp

int memcpy(const void* ptr1, const void* ptr2, size_t num);从ptr1和ptr2指向的位置开始比较大小返回值:ptr1 > ptr2, 返回大于0的数ptr1 < ptr2, 返回小于0的数ptr1 == ptr2, 返回等于0的数大小端存储模式:大端存储模式:低权值(字节)存储在高地址,高权值(字节)存储在低地址小端存储模式:低权值(字节)存储在低地址,高权值(字节)存储在高地址#i...

2022-04-14 21:00:26 441

原创 用C语言实现my_memmove

memmovevoid* memmove(void* dest, const void* src, size_t num);void* dest --- 接收任意类型的指针,指向指向存储数据源的目标地址const void* src --- 不可被修改的,接收任意类型的指针,指针指向复制的数据源size_num --- 复制的大小,单位字节memmove从src中复制num个字节的内容到dest中,如果遇到dest和src重叠的数据源,memmove函数会保证数据被覆盖前将字节...

2022-04-14 20:14:31 364

原创 用C语言实现my_memcpy

memcpyvoid* memcpy(char* dest, const void* src , size_t num);memcpy从src指向的位置开始,拷贝num个字节到dest指向的位置,当src指向的内容为'\0'时,拷贝也不会停止。当遇到重叠拷贝时,库memcpy函数也会拷贝成功,my_memcpy则不会。void* 无类型指针,可以存放任何类型的地址,但不能进行解引用操作 和 加减整数操作,,,通过指针名,指针名是地址,可以比大小#include<s...

2022-04-14 13:10:48 430

原创 用C语言实现my_strncat

char* (char* dest, const char* src , size_num);返回值:dest目标数组的起始地址注意:当追加个数大于源字符串的长度时,则追加完源字符串后,直接在目标字符串后加'\0'当追加个数小于源字符串的长度时,则追加个数为0后,在目标字符串后加'\0'特别注意:while(*ret++){;}ret--;------------>ret等于'\0'之后,ret再次++,因为时后缀...

2022-04-13 22:04:50 159

原创 用C语言实现my_strncmp

int strncmp(const char* str1 , const char* str2, size_num);比较到两个字符串不一样 或者 比较到其中一个字符串结束 或者 size_num个结束;返回值:当str1大于str2时,返回大于0的数;当str1小于str2时,返回小于0的数;当str1等于str2时,返回等于0的数;#include<stdio.h>#include<string.h>#include<assert.

2022-04-13 21:16:37 140

原创 用C语言实现my_strncpy

char* strncpy(char* dest, const char* src, size_count);用途:从stc源字符串中拷贝size_count个到dest目标数组中。注意:源字符串不可被修改,目标字符串可以被修改,并且有足够的空间容纳源字符串。当追加的个数(size_count)大于源字符串时,则追加完源字符串后,继续追加'\0'直至要追加个数当追加的个数(size_count)小于源字符串时,则追加完源字符串后,不会自动追加'\0'...

2022-04-13 20:37:47 173

原创 用C语言实现my_strcat

字符串的结束标志时'\0'char* strcat(char* dest, const char* src);源字符串时不可以被修改的,目标数组时可以被修改的,目标数组有足够大的空间容纳要追加的字符串的大小源字符串必须以'\0'结束strcat函数的返回值:返回目标数组的起始位置#include<stdio.h>#include<string.h>#include<assert.h>char* my_strcat(char* de

2022-04-13 20:05:01 187

原创 用C语言实现my_strcmp

int strcmp(const char* str1, const char* str2);返回值:(vs编辑器返回1,-1,0)(gcc,返回两字符的差值)str1 大于 str2 时,返回一个大于0的数;str1 小于 str2 时,返回一个小于0的数;str1 等于 str2 时,返回一个等于0的数;#include<stdio.h>#include<string.h>#include<assert.h>int my_strcmp(c

2022-04-13 19:45:57 499

原创 C语言中的strtok函数

char* strtok(char* str, const char* seq);seq参数时一个字符串,其定义了一个或多个的分隔符的字符集合第一个参数指定一个字符串, 这个字符串里包括一个或多个seq参数的字符集合strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个小字符串的指针strtok函数会改变操作的字符串,所有在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改第一个参数不是NULL时,strtok函数查找str下一个标记,以\0结尾,strto

2022-04-13 19:04:19 1391

原创 用C语言实现杨氏矩阵

题目:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下也是递增的,请编写一个程序在这样的矩阵中查找莫个数字是否存在.1 2 33 4 56 7 8一:以最右上方一个数为标准(3),当要查找的数大于(3)时,则找的数不可能在数字(3)这一行,行++。当要查找的数小于(5)时,则要找的数不可能在数字(5)这一列,所以列++;二:以最左下方一个数为标准(6),当要查找的数大于(6)时,则找的数不可能在数字(3)这一列,列++。当要查找的数小于(5)时,则要找的数不可能在数字(5)这一行

2022-04-12 11:38:10 86

原创 写一个函数判断一个字符串是否是另一个字符串旋转之后的字符串

注意注意:目标数组的容量足够容纳追加后的字符串strcat()函数不能自己追加自己“abcdef\0”->" bcdefa"....->" abcdef“没有'\0',。。。。'\0'是字符串的结束标志描述strcatC 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。声明下面是 strcat() 函数的声明。char *strcat(char *dest,...

2022-04-11 23:28:00 288

原创 用C语言实现函数可以左旋k个字符串

题目:函数可以左旋k个字符串?例如:"abcdef" 左旋2 后“cdefab”方法一:#include<stdio.h>#include<string.h>#include<assert.h>void left_move(char* pa, int k){ assert(pa != NULL); //断言 int len = strlen(pa); //字符串长度 int i=0; for(i=0;i<k;i++){ //左旋几

2022-04-11 21:41:24 207

原创 用C语言实现my_qsort函数

#include<stdio.h>int cmp_int(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}void swap(char* buf1, char* buf2, int width){ int i=0; for(i=0;i<width;i++){ //一次char*(走一个字节),交换一个类型的宽度 char temp = *buf1; *buf1 = *buf...

2022-04-10 23:03:32 233

原创 字符数组与常量字符串

字符数组的数组名是字符串的首元素地址,这里的字符串可以被修改,const 常量字符:指针指向的首元素的地址里面的内容不可被修改,#include<stdio.h>int main(){ char str1[] = "hello world!"; // 字符串数组 char str2[] = "hello world!"; const char* str3 = "hello world!"; //常量字符串 const char* str4 = "hello world!

2022-04-10 19:03:02 199

原创 用C语言实现对菱形的打印

注意:空格,星星与行数的关系。#include<stdio.h>int main(){ int line=0; //控制行数 scanf("%d",&line); //上半部分 int i=0; for(i=0;i<line;i++){ int j=0; //打印空格(递减) for(j=0;j<line-1-i;j++){ printf(" "); } //打印星星(递增) for(j=0;j&.

2022-04-10 09:15:01 349

原创 用C语言判断是否为水仙花数(自幂数)

#include<stdio.h>#include<math.h>//C 库函数 double pow(double x, double y) 返回 x 的 y 次幂,即 x^y。//实现水仙花数(自幂数)double my_pow(int n,int k){ if(k > 0){ return n * my_pow(n,k-1); } else if(k == 0) return 1; else return 1.0 / ( n*my_pow.

2022-04-09 21:51:52 441

原创 用C语言实现整形,浮点型,字符串,结构体的排序

方法一:只能实现整形排序(冒泡排序)#include<stdio.h>void bubble_sort(int arr[], int sz){ int i=0; for(i=0;i<sz-1;i++){ int flag = 0; int j=0; for(j=0;j<sz-1-i;j++){ if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1];...

2022-04-06 22:28:03 1469

原创 用C语言简单实现加减乘除

//简单实现加减乘除//函数指针数组#include<stdio.h>void nume(){ printf("***********************\n"); printf("**** 1.Add 2.Sub ****\n"); printf("**** 3.Mul 4.Div ****\n"); printf("*****5.Eor 0.exit ****\n"); printf("***********************\n"); }...

2022-04-06 13:29:51 4642

原创 用C语言简单实现加减乘除等计算

//对回调函数的理解#include<stdio.h>void nume(){ printf("***********************\n"); printf("**** 1.Add 2.Sub ****\n"); printf("**** 3.Mul 4.Div ****\n"); printf("*****5.Eor 0.exit ****\n"); printf("***********************\n"); }int Add(int.

2022-04-06 13:16:25 614

原创 哈夫曼树的概念与特点

基本概念:路径:结点与结点的分支构成这两个结点之间的路径路径长度:从一个结点到另一个结点所经过的分支的个数结点权:带权路径长度:从根结点到该根结点的路径长度乘以改结点的权树的带权路径长度:树的带权路径长度是指树中所有的叶子结点的带权路径长度之和,通常记作WPL。哈夫曼树:又称最优二叉树,是指带权路径最小的二叉树。构造哈夫曼树1.满二叉树不一定是哈夫曼树。2.每个...

2022-04-05 21:18:03 2277

原创 用C语言恶搞你的好朋友strcmp()

C语言 strcmp() 函数用于对两个字符串进行比较(区分大小写)。strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0)。返回值:如果返回值 < 0,则表示 str1 小于 str2。 如果返回值 > 0,则表示 str2 小于 str1。 如果返回值 = 0,则表示 str1 等于 str2。#include<stdio.h>#include<stdl...

2022-04-05 10:30:24 545

原创 用C语言实现n的k次方项

实现思想:k值分3种情况:整数,负数,0;#include<stdio.h>double pow(int n, int k){ if(k < 0) return 1.0/(pow(n,-k)); 返回值浮点类型,运算符左右操作数必须有一个浮点数 else if(k > 0) return n*pow(n,k-1); else return 1; }int main(){ int n,k; printf("请输入两个数:\n"); sc

2022-04-04 21:31:47 145

原创 对arr与&arr的理解

-----arr与&arr的区别1.sizeof(数组名),这里的数组名是表示的是整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名是整个数组,取出的是整个数组。3.除此之外的数组名是首元素的地址。-----指针1.指针是一个变量,用来存放地址的,地址是唯一标识一块内存空间的2.指针的大小的是4/8,32位/64位3.指针类型决定了指针访问内存的大小,指针类型决定了指针加减整数的步长4.指针的运算(指针-指针,是计算元素的个数,两个指针必须指向同一空

2022-04-04 20:42:32 930

原创 用C语言实现参数二维数组的使用

#include<stdio.h>#define ROW 2#define COL 3//定义print void print(int (*pa)[COL], int row, int col); int main(){ int a[ROW][COL] = {{1,2,3},{4,5,6}}; //调用print print(a,ROW,COL); //a是首元素的地址,这里的首元素地址是第0行一维数组的地址 // 1 2 3 --->int[3] .

2022-04-04 19:59:46 316

原创 有C语言实现求二进制中的所有的奇数位和偶数位

& 按位与---同1才1| 按位或---有1就1^ 按位异或---同0异1#include<stdio.hj>int main(){ int data,i=0; printf("请输入一个数:\n"); scanf("%d",&data); printf("二进制中奇数:\n"); for(i=31;i>=1;i-=2){ printf("%d ",1&(data>>i) ); // 第一次左移31,按位与1得到第

2022-04-01 10:03:32 401

原创 有C语言实现判断大小端

1. 什么是大小端存储模式? -大端存储模式:将数据的低位放在内存的高地址的#include<stdio.h>int check_sys(){ int i=1; return *(char*)&i; // 强制类型转换}int main(){ int ret = check_sys(); if(ret == 1) printf("小端存储模式\n"); else printf("大端存储模式\n"); return 0; }...

2022-03-31 21:37:09 74

原创 用C语言实现my_strcpy

基本思路:将你所需要的字符串逐一拷贝到目的地字符串里,包括'\0'。注意:1、'\0' 是字符串的结束标志, 2、目的地所在的容量必须比所需要的字符串要来的大。#include<stdio.h>#include<assert.h>char* my_strcpy(char* dst, const char* scr){ //const修饰使scr里的内容不可被修改 assert(*scr != NULL && *dst...

2022-03-31 20:34:26 352

原创 用C语言实现求二进制中不同位的个数

^ 按位异或 同零异一#include<stdio.h>int count_diff_bits(int n, int m){ int temp = n^m; // ^ 按位异或 同零异一 temp存放了m和n相同位置不同数的个数,有几个1就有几个不相同的数的个数 int count=0; while(temp){ temp = temp&(temp-1); count++; // 统计二进制中1的个数 } return count++;}int m.

2022-03-31 11:07:05 358

原创 用C语言统计二进制中1的个数的3种方法

计算机是以二进制补码的形式存储,例如:13 00000000 00000000 00000000 00001101 -----原码,反码,补码正数的原码 反码 补码 相同-110000000 00000000 00000000 00000001 ----原码11111111 11111111 11111111 11111110 -----反码(按位去反,符号位不变)11111111 11111111 11111111 11111111 ------补码(反码+1)负数的最高位为...

2022-03-31 10:44:38 1351

原创 用C语言实现两个数的交换

// ^ 按位异或->同零异一#include<stdio.h>int main(){ int n,m; printf("请输入两个数: \n"); scanf("%d%d",&n,&m); printf("交换前:n=%d m=%d\n",n,m); n = n^m; m = n^m; n = n^m; printf("交换后:n=%d m=%d\n",n,m); }#include<stdio.h>int m...

2022-03-31 10:00:46 866

原创 用C语言实现两个数的交换

调用分为:传值调用和传址调用#include<stdio.h>void swap(int* x,int* y){ // 指针的形式接收 int temp = *x; //临时变量temp *x = *y; *y = temp;}int main(){ int n,m; printf("请输入交换的两个数;\n"); scanf("%d%d",&n,&m); printf("交换前的值: n=%d m=%d\n",n,m); swap(&amp.

2022-03-31 09:43:31 489

原创 用C语言实现求my_strlen3 种方法

3 种方法的思想:注意:'\0'是字符串结束的标志。方法一:采用计数器,创建一个临时变量count,遍历字符串 count++,遇到 '\0'结束,最后返回count。注意:1.必须有一个限制条件是递归停止,2.每递归一次就越接近限制条件。方法二:采用递归,不创建临时变量, 进入递归一次加1,当字符串遇到等于'\0'返回0。注意:两个指针必须指向同一个数组。方法三:采用指针-指针,有一个指针start指向字符串的首地址,end指针指向'\0'的前一个字符两个指针相减则是元素的个数

2022-03-30 23:35:36 750

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除