- 博客(9)
- 收藏
- 关注
原创 c语言的文件操作
文件的四个核心操作:1、打开文件 fopen2、读文件 fread3、写文件 fwrite4、关闭文件 fclose打开文件:fopen()//打开文件 //以下的FILE是一个C标准库已经定义好的结构体,返回结果为“文件指针”(即:句柄) //如果文件打开失败,返回NULL FILE* f = fopen("D:/test.txt", "w");//第二个参数为'r',针对文本文件 if (f == NULL) { perror("文件打开失败"); //等价代码:printf
2020-11-27 18:18:30 503
原创 c语言 找单身狗
找单身狗:一组元素只出现一次的数据eg:[7,3,3,4,4,5,5,7,1,9]单身狗:1,7,8,9思路:首先对该组元素进行冒泡排序[1,3,3,4,4,5,5,7,8,9]从首元素开始将相邻元素进行比较#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void bubblesort(int arr[], int size) { //设定一个边界值bound,用来区分已排区和未排区
2020-11-27 12:03:33 842 1
原创 模拟实现strncat,strncpy函数
1.模拟实现strncat#include<stdio.h>#include<stdlib.h>#include<assert.h>//模拟实现strncat函数(长度受限制的字符串拼接)//函数原型:char* strncat(char* dest,count char* src,size_t count)//作用:将源字符串里的count个字符拼接到目标字符串上//注意:目标字符串空间必须足够大void myStrncat(char* dest, co
2020-11-27 10:13:32 411
原创 模拟实现atoi函数
模拟实现atoi函数:把字符串转换成整型数,返回整形值函数原型:int atoi(const char* string);实现过程:atoi()传入一个char*,返回一个int,跳过前面的空格字符直到遇上数字或者正负符号才开始做转换,再次遇到非数字或者’\0’时转换结束#include<stdio.h>#include<stdlib.h>#include<assert.h>int myAtoi(const char* str) { //参数合法性校验
2020-11-25 19:02:46 420
原创 c语言实现字符串旋转问题
1.利用函数实现字符串左旋num个字符#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>void leftSwap(char str[],int len ,int n) {////断言:用来进行合法性校验,如果条件为真,断言无效,条件为假,程序崩溃 assert(str != NULL); while (n) { //将数组首元素的值“
2020-11-25 16:42:12 534
原创 冒泡排序
冒泡排序//实现一个对整形数组的冒泡排序//该方法从后往前升序遍历#include<stdio.h>int main() { int arr[] = { 9,5,2,7 }; //设定一个边界值bound ,用来区分已排区和未排区 //[0-bound]:已排区 //(bound-size):未排区 int bound = 0; int size = sizeof(arr) / sizeof(arr[0]); int i = 0; //外循环遍历4次 for (int
2020-11-17 17:56:46 323
原创 二分查找
#include<stdio.h>int binaryFind(int arr[],int size, int toFind) { int left = 0; int right = size - 1; while (left <= right) { int mid = (left + right) / 2; if (toFind > arr[mid]) { left = mid + 1; } else if (toFind < arr[m
2020-11-04 23:33:21 379
原创 移位(<<,>>),按位与&,异或 运算符的应用
1.统计二进制中1的个数#include<stdio.h>int countOnebit(int num) {//找到规律:分别将其与二进制的1,10,100,1000...进行&运算//涉及到移位运算和位运算 int i = 0; int count = 0; for (i = 0;i < 32;i++) { //将1左移后,如果当前这个1的位置,对应的第一个操作数比特位也是1,结果就是非0,此时count++ if (((1 << i)&
2020-11-04 23:31:31 662
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人