自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 434. 字符串中的单词数(简单清晰)

2023-04-05 21:26:49 124

原创 451. 根据字符出现频率排序(无需自定义排序规则,简明易懂)

2023-04-01 16:30:35 127

原创 力扣 67 二进制求和(简明)

二进制求和

2023-03-29 10:04:18 124

原创 力扣415 字符串相加(大树求和 简单明了)

字符串加法运算

2023-03-29 09:35:25 90

原创 力扣 383. 赎金信(简单易懂)

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。此处采用的容器map,map容器中的元素是队组,此处正好可以用key来记录字符以及对应字符的出现次数value。magazine 中的每个字符只能在 ransomNote 中使用一次。如果可以,返回 true;否则返回 false。

2023-03-27 10:22:14 46

原创 C/C++实现判断二叉树是否为平衡二叉树(简单详细)

通过递归进行求解:将一个二叉树分为3个部分:根节点 左子树 右子树。3.左右子树的高度差是否大于1 ,大于1则说明是非平衡二叉树。1.左子树是否为平衡二叉树。2.右子树是否为平衡二叉树。

2023-03-19 15:40:47 356

原创 LED灯带(WS2812)的点亮模式控制(arduino)

可编程LED灯的具体实现

2023-03-04 10:26:06 1859

原创 设计一个圆类(circle) 和一个点类,求解点和圆的关系

三种关系:点在圆外 点在圆上 点在圆内点和圆心之间的距离与半径进行对比即可得到结果获取点(X2,Y2)与圆心(X1,Y1)之间的距离D=根号下(X2-X1)平方+(Y2-Y1)平方D和圆的半径m_r进行对比(简化:D的平方与m_r的平方进行对比)圆类:圆心 半径点类:X Y 坐标下面进行代码的演示:#include<iostream>using namespace std;#include <st...

2022-05-14 17:55:16 955

原创 C++实现通讯录(讲解详细易懂)

C++快速实现通讯录功能步骤详细,思路清晰

2022-05-08 17:14:16 3903

原创 qsort函数功能详解以及使用样例

qsort函数是C语言的一个库函数,用来对任意类型的数据进行排序(按照升序进行排列)qsort函数的头文件是#includ<stdio.h>Void qsort(void* base , size_t num, size_t width, cmp(const void* e1, const void* e2);void* base---要进行排序的数组的起始地址size_t num---进行排序的数组的元素个数size_t width---每个元素的大小(单位是字节)cm

2022-04-14 15:58:44 829

原创 用递归实现字符串逆序,方法简明扼要

用递归实现字符串的逆序:关键是在于递归条件的设定,如果字符串长度大于等于2,则可以进行逆序,因此便有了以下代码#include<stdio.h>#include<assert.h>#include<string.h>void reverse(char* arr){ assert(arr != NULL); char tep = *arr;//将首字符存入tep中 int len = strlen(arr);//求出现有字符串的长度...

2022-04-13 20:52:34 1432

原创 输入一个大写字母,输出对应的小写形式

字符在内存中存储的是其对应的ASCII码,大写字母的ASCII码与小写字母的ASCII码相差32,因此可根据此特点来进行实现:getchar()-------读取输入的字符putchar()-------输出对应的字符#include<stdio.h>#include<assert.h>int main(){ int ch = 0; while ((ch = getchar())!=EOF)//getchar读取失败就会返回EOF,EOF!=EOF...

2022-04-03 11:40:46 6425

原创 递归实现n的k次方,详细说明

这次通过递归实现n的K次方,需要注意的一个点是返回值的类型为double,因为k小于0时返回值为复数,而不能简单的设为int#include<stdio.h>double jc(int n, int k)//函数的返回值为复数,因而为double类型{ //三种情况 if (k < 0) { return (1.0 / jc(n, -k)); } else if (k == 0) { return 1;//...

2022-03-26 20:56:50 704 1

原创 内存拷贝函数memmove(处理内存重叠时的内容拷贝)附详细解释

void* memmove( void* dest,const void* src,size_t num);当源头和目的地有重叠时,其内容的拷贝就需要分情况进行讨论,然后采用不同的拷贝方式以达到目的:根据实际情况,具体可分为2类1.目的地的起始地址dest<源头内容的起始地址src目的地的起始地址(char*)dest>源头内容的起始地址(char*)src+num进行拷贝时源内容从前向后每次拷贝一个字节,共拷贝num个字节即可完成要求大小的内容的拷贝2.当(char*)sr

2022-03-11 16:55:25 515

原创 内存拷贝函数memcpy的实现方法(非常简明易懂)

只适用于不重叠时的内存拷贝,而存在重叠时就需要采用memmove 函数了void* memcpy(char* dest,const char* src,size_t count )src即为源头的地址,dest为目的地的地址size_t int =unsigned int#include<stdio.h>#include<assert.h>void* my_memcpy(void* arr2,const void* arr1,int num)//将arr2的内容.

2022-03-11 16:11:55 1846

原创 字符串查找函数Strstr函数的实现(详细易懂)

首先,字符串查找函数是在目的字符串中查找源字符串的首次出现的具体位置,若找到了便返回该位置的地址,若没有找到,则返回空指针NULLchar* strstr(const char*arr1 , const char* arr2);#include<stdio.h>#include<assert.h>char* my_strstr(const char* arr1,const char* arr2)//查找字符串,目的地字符串和源头字符串的内容不发生改变(const){.

2022-03-11 15:40:55 3098

原创 字符串比较函数Strcmp的具体实现方法(非常简明)

先把Strcmp函数的定义拿出来:int strcmp(const char* arr1,const char* arr2)若字符串1>字符串2,则函数的返回值为大于0的数(VS编译器下是1)若字符串1=字符串2,则函数的返回值为0(VS编译器下是0)若字符串1<字符串2,则函数的返回值为小于0的数(VS编译器下是-1)字符串比较实际上是比较对应位置字符的ASCII码值的大小具体的代码为:#include<stdio.h>#include<asse

2022-03-09 20:03:42 4652

原创 Strcat字符串追加函数的具体实现方法

首先转到strcat函数的定义:char* strcat(char* dest,const char* src)函数的返回值是目的字符串的起始地址,dest接收目的字符串的起始地址,src为源头字符串的起始地址:例子是将''xs''拷贝到''hello''后面,具体代码是:#include<stdio.h>#include<assert.h>char* my_strcat(char* arr1,const char* arr2)//源头字符串的内容不发生改变{

2022-03-09 19:48:56 174

原创 字符串拷贝函数Strcpy的实现

非常详细的字符串拷贝函数的实现

2022-03-09 19:34:15 1982

原创 Strlen函数的实现(采用新方法——递归)

之前的求字符串长度采用的是计数器的方法,这一次采用递归解决:#include<stdio.h>#include<assert.h>int my_strlen(char* arr){ assert(arr != NULL);//确保指针的有效性 if (*arr != '\0')//只要计算字符串长度没有到'\0',则其后面还有字符 { return 1 + my_strlen(arr + 1);//进行递归 } els...

2022-03-09 19:19:31 109

原创 杨辉三角(超简单的思路)

打印杨辉三角,重要的是观察出其特点,然后简化思维进行解决,第一列的所有元素都是1,而对角线上的所有元素也是1,其他位置的元素是其上一行对应两个元素的和,其代码如下:#include<stdio.h>int main(){ int arr[10][10] = { 0 }; int i = 0; int j = 0; for (i = 0; i < 10; i++) { for (j = 0; j <=i; j++) ...

2022-03-07 21:29:44 547

原创 实现一个字符串左旋功能的函数

左旋字符串具体是指:“abcdef”->左旋两个字符即得到“cdefab”Strlen函数是用来求解字符串的长度的函数,不包括‘\0’直接上代码,后面包含了解释#include<stdio.h>#include<string.h>void leftmove(char arr[], int k){ int len = strlen(arr);//得到字符串的长度 int i = 0; for (i = 0; i < k; i++)/...

2022-03-07 20:50:07 104

原创 字符的妙用(附题目)

一共有四个人,这里面有一个坏人,他们的供词为:A:不是我 B:是C C:是D D:C在乱讲这里面有3个人说了实话,通过程序来判断谁是坏人这里首先要提到一个:字符在内存中是存储着其对应的ASCII码值,因此可以这样写:#include<stdio.h>int main(){ int bad = 0;// bad是指那个坏人 for (bad = 'a'; bad <= 'd'; bad++)// a,b,c,d,的ASCII码是连着的,因而可以用for循环...

2022-03-07 20:26:36 54

原创 求字符串长度的函数Strlen的具体实现方法

先说明一下strlen函数的定义:int strlen(const char* str);函数在计算字符串长度时只求出了元素的个数,而且不包括'/0'下面就是具体的实现代码,关键步骤都有注释:#include<stdio.h>#include<assert.h>int my_strlen(const char* arr){ assert(arr != NULL);//先判断arr指针的有效性 int a = 0; while (*arr)//...

2021-12-08 11:18:59 554

原创 字符串拷贝函数strcpy的实现

这个函数的实现比较简单:大家请看需要注意的地方是目的地空间必须足够大,能够将源字符串的内容放进去还有就是While循环的妙用#include<stdio.h>#include<assert.h>char* my_strcpy(char* dest,constchar* src)//源字符串的内容不发生改变,用const修饰{assert(dest!= NULL);assert(src!= NULL);char...

2021-12-03 21:52:25 499

原创 实现一个通用的冒泡排序函数qsort(超详细)

大家一开始可以拿一个整形数来练习冒泡排序,理清楚思路后再完成qsort函数的实现,会容易很多,两者的中心思想是一样的,不同的是通用的冒泡排序函数需要传入对比两个元素大小大的具体方法,这个是要根据实际需求来编写的。老规矩,给大家只是我的思路://实现一个通用的冒泡排序函数qsort#include<stdio.h>intcmp_int(constvoid* e1, constvoid* e2)//与qsort函数对比较函数的要求一样(e1>e2,返回值大于0,反之小于0;相...

2021-12-03 21:32:11 880

原创 整形数组元素排序,奇数在前,偶数在后

直接上代码,代码上面有解释:精髓就是:从前面找偶数,后面找奇数,找到后相互调换位置#include<stdio.h>int main(){ int arr[] = { 2,3,4,5,7,6,8,9,10,1 }; int i = 0; int len = sizeof(arr)/sizeof(arr[0]); int* p1 = arr; int* p2 = arr + len - 1; while (p1 < p2)//从左边找...

2021-11-28 18:18:25 568

原创 判断内存到底是大端存储还是小端存储

开门见山,其实只需要判断第一个字节的内容即可明确,这里就用最简单的1即可:#include<stdio.h>#include<assert.h>int main(){int a = 1;if (*(char*)&a == 1)//通过访问内存中存储的1的第一个字节的内容(2个16进制位)即可判定{ printf("小端存储\n");}else{ printf("大端存储\n");} return 0;}法二:用函数判...

2021-11-28 17:39:05 460

空空如也

空空如也

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

TA关注的人

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