C语言
陆星材
这个作者很懒,什么都没留下…
展开
-
getline函数实现 2020-12-29
#include <stdio.h>#include <stdlib.h>#include <string.h>int mygetline(char **lineptr, int *n, FILE *fp){ if(*lineptr == NULL) { *lineptr = (char *)malloc(10); *n += 10; } char c = 0; int count = 0; while((c = fgetc(fp)) !=.原创 2021-05-25 14:16:19 · 442 阅读 · 0 评论 -
c语言 双链表封装 (无头链表)2020-12-15
//头文件//#pragma once#ifndef HH_H#define HH_H#include <stdio.h>struct node{ struct node *next, *prev;};//h 结构体类型 list#define container_of(ptr, type, member) \(type *)((char *)ptr - ( (unsigned int)&( (type *)0 )->member ) )//.原创 2021-05-25 14:15:40 · 218 阅读 · 1 评论 -
c语言 单链表(无头链表)判断有无环2020-12-11
#include <stdio.h>#include <stdlib.h>struct node { int hao; int val; int data; struct node *next;};void showlist(struct node *head){ printf("========open=======\n"); while(head) { sleep(1); printf("编号 %d head->val %d\n",.原创 2021-05-25 14:15:26 · 149 阅读 · 0 评论 -
c语言 单链表 (有头链表)2020-12-10
#include <stdio.h>#include <stdlib.h>struct node{ int val; int hao; struct node *next;};void destory(struct node *h){ struct node *p = NULL; while(h) { p = h->next; free(h); h = NULL; h = p; }}void Destory(struct n.原创 2021-05-25 14:15:10 · 182 阅读 · 0 评论 -
c语言 单链表 排序 删除 查找 (无头链表)2020-12-07
上面为完整元素,下面为删除元素#include <stdio.h>#include <stdlib.h>struct node{ int val; int hao; struct node *next;};void show_list(struct node *first){ printf("======open======\n"); while(first) { printf("编号 %d fi.原创 2021-05-25 14:14:45 · 172 阅读 · 0 评论 -
标准库文件操作2020-11-25
#include <stdio.h>//txt:abcdefint main (){ FILE *fp = fopen("txt", "r"); if(fp == NULL) { perror("open error\n"); return -1; } char p[10] = {0}; fread(p, 5, 2, fp); //每次读5个,读2遍, 在fp里面读,传给p printf("%s\n.原创 2021-05-07 14:29:08 · 109 阅读 · 0 评论 -
关键字和静态\动态库2020-11-25
auto 自动识别类型。register 寄存器变量。const 限定变量的值不能被改变。volatile 防止被优化。extern 表示变量或者函数的定义在别的文件中。static 静态全局变量。 有默认的初值。 只做一次初始化。 限定作用域(只能在本文使用) 生命周期:定义开始到整体的程序的结束。typedef 给已知类型换一个别名。#define(宏定义) 进行简单的替换(不会分配内存)(do{}while(0)头文件不用加分号)函数不能计算内存和存...原创 2021-05-07 14:28:36 · 114 阅读 · 0 评论 -
结构体的应用2020-11-12
#include <stdio.h>#include <string.h>#include <stdlib.h>#define NUM 4;struct stuednt{ char *name; int age; int score;};void initcls(struct student *p, char *data){ int i = 0; char *t = strtok(data, ",;") .原创 2021-05-07 14:28:20 · 190 阅读 · 0 评论 -
用c语言实现atoi
#include <stdio.h>int my_atoi(char *s){ if((*s < '0') || (*s > '9')) { return 0; }// int num = *s - '0';// return num + 10*my_atoi(s + 1); static int num = 0; num = num*10 + *s - 48; my_atoi(s + 1); return num;}int main(){ .原创 2021-05-07 14:27:39 · 130 阅读 · 1 评论 -
对一个字符/字符串大小写转换
#include <stdio.h>#include <string.h>int main (){ //char str[] = {"abAB"}; 用函数strlen(str) char arr[] = {'a','b','A','B'}; int n = sizeof(arr)/sizeof(char); int i; for(i = 0; i < n; i++) { if(arr[i] >= .原创 2021-04-27 14:58:11 · 187 阅读 · 0 评论 -
判断一个字符串/整数是不是回文
#include <stdio.h>#include <string.h>int main (){ char str[] = {"abcba"}; int n = strlen(str); //int n = sizeof(str)/sizeof(char)-1; //有一个'\0' int i, j; for(i = 0, j = n-1; i <= j; i++, j++) { //str[n-1]是最后一个a .原创 2021-04-27 14:57:36 · 136 阅读 · 0 评论 -
无序数组的去重
#include <stdio.h>int main (){ a[] = {5,5,1,3,3,2,3,4,2,2,5}; int i, j; int n = sizeof(a)/sizeof(int); //计算有多少个元素 //int n = sizeof(a)/sizeof(a[0]); for(i = 0; i < n; i++) { for(j = i + 1;j < n; j++) .原创 2021-04-27 14:20:39 · 945 阅读 · 0 评论 -
冒泡/选择/qsort排序
#include <stdio.h>int main (){ int i = 0; int j = 0; int arr[] = {1, 3, 8, 2, 6, 4, 7, 5}; for (j = 0; j < 7; j++) { for (i = 0; i < 7 - i; i ++) { if (arr[j + 1] < arr[j]) .原创 2021-04-27 14:19:43 · 81 阅读 · 0 评论 -
编写一个递归函数实现二分查找(有序数列)
编写一个递归函数实现二分查找(有序数列)#include <stdio.h>//编写一个递归函数实现二分查找(有序数列)int find(*brr, int a, int b, int c){ if(a > b) return -1; while(a <= b) { int mid = (a + b)/2; if(brr[mid] < c) { return f.原创 2021-04-21 10:26:55 · 1626 阅读 · 0 评论 -
快速排序
#include <stdio.h>void sort(int *a, int l, int r){ if(l >= r) return; int key = a[l]; int i = l, j = r; while(i < j) { while((i < j) && (key < a[j])) j--; a[i] = a[j]; while((i < j) && (key > a[i]).转载 2020-10-21 19:41:53 · 128 阅读 · 0 评论