- 博客(6)
- 收藏
- 关注
原创 C语言模拟实现 memcpy和memmove库函数(原理简单分析)
模拟实现memcpy库函数 #include<stdio.h>void* my_memcpy(void*copy, void*test, unsigned int num) //memcpy可以复制任意类型数(整形,字符串等){int* p2 = (int*)copy; //强制转换 其中arr元素地址类型本就为 int*int* p1 = (int*)test;while (num != 0){ *p2++ = *p1++;//解引用赋值后地址再++; //若地址重叠
2022-04-25 12:26:09 1218
原创 模拟实现strcmp(常规方法)
模拟实现strcmp库函数 #include<stdio.h>int my_strcmp(const char*arr1, const char*arr2) //因为只需比较arr1与arr2是否相等无需对其修改 因此用const常量修饰{while (*arr1++ == *arr2++ && *arr1!='\0' && *arr2!='\0')//比较*arr1与*arr2对应每位是否相等{ ;}if (*arr1 == *arr2 &am
2022-04-24 22:02:12 1093
原创 模拟实现strstr(根据字符串长度进行判断的方法)
模拟实现strstr#include<stdio.h>#include<stdlib.h>#include<assert.h>int my_strlen(char*dest){int count = 0;while (*dest!='\0')//计算字符串长度{ count++; dest++;}return count;} const int my_strstr(const char*arr, const char*dest) //因为
2022-04-23 18:06:23 439
原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个只出现一次的数字,编程实现。(介绍两种方法)
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个只出现一次的数字,编程实现。(介绍两种方法)法一 暴力求解法 #include<stdio.h> int main(){int arr[] = {1,1,2,3,2,4,4,5 };int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;int j = 0;for (i = 0; i < sz; i++) //遍历两次{ int count = 0;//重置
2022-04-22 16:25:54 389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人