![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
pointer_y
梦想就是用来实现的。
展开
-
【操作系统】C语言模拟操作系统实现磁盘调度算法——电梯调度算法
#include#include#includeint *Init(int arr[]){ int i = 0; srand((unsigned int)time(0)); for (i = 0; i < 15; i++) { arr[i] = rand() % 200 + 1; printf("%d ", arr[i]); } printf("\n"); ret原创 2016-09-01 17:45:18 · 10609 阅读 · 0 评论 -
【C语言】模拟实现strchr,strrchr,strrstr.
1.模拟实现strchr,该函数的功能是在一个字符串里查找出第一次出现的某个字符,返回该字符第一次出现的地址,找不到则返回空。例如:strchr("i am a student ",'a')它会返回am a student 。实现:#include#includechar *my_strchr(const char *arr, char c) //对被查找字符串加保护,使得程原创 2016-05-07 18:02:39 · 811 阅读 · 0 评论 -
【C语言】指针,数组,数组指针,指针数组
关于指针,大家都知道它的内容是一个地址。当我们定义一个指针变量并对它进行初始化时,内存给它分配一个4字节的空间用来存放其他变量的地址。当然它本身也会有一个地址,也可以存放在一个二级指针里面。知道了这些,让我们来看看下面几个问题。int *p; //定义了一个指针变量p;p++; //地址以int为单位向后移原创 2016-04-27 22:40:37 · 487 阅读 · 0 评论 -
【C语言】详解可变参数列表
我们通过模拟实现printf函数的部分功能说一下可变参数列表#include#include //可变参数头文件 #includevoid print(char *format, ...){va_list arg; //这是一个char类型的指针。va_start(arg,原创 2016-04-18 17:46:09 · 441 阅读 · 0 评论 -
【C语言】一组数据中只有一个数字出现了一次。 其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
我觉得用异或的方法来解决这个问题比较简单,有更好的方法也希望能共享给我哦~#includeint main(){int i = 0;int j = 0;int num = 0;int arr[10] = { 0, 0, 1, 1, 2, 3, 3, 4, 4 };for (i = 0; i {num ^= arr[i];原创 2016-04-04 17:01:22 · 421 阅读 · 0 评论 -
【C语言】模拟实现memmove
memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。如果没有重叠,它可以像memcpy效果一样,但是效率没有memcpy高。函数实现:#include#includevoid *my_memmove(void *dest, void *str, size_t le原创 2016-06-04 20:22:38 · 575 阅读 · 0 评论 -
【小项目】注释风格转换(从C语言注释风格转换到C++注释风格)
我们设置四种状态,这是状态之间的转换图。那在从C到C++的转换过程中,我们大概能遇到几种情况呢。先来看看的我们的测试文件// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; */int j = 0;// 3.匹配问题/*int i = 0;/*xxxxx*/// 4.多行注释原创 2016-05-25 16:16:58 · 532 阅读 · 0 评论 -
【C语言】实现一个通讯录(三:加入文件读写)
我们知道,在前两次实现中,每次测试都需要不停的添加联系人信息,而且一旦退出程序,无法保存已经输入的联系人信息。于是我们考虑到用文件将联系人信息保存起来,并且还可以在运行程序的时候将已有的联系人信息载入。 在项目里新建一个文件,类型为DAT类型文件,以二进制形式保存信息。用到两个函数:size_t fread( void *buffer, size_tsize, size_t co原创 2016-05-20 23:57:11 · 7930 阅读 · 4 评论 -
【计算机网络】网络编程---TCP套接字(一)
服务器客户端模型原创 2017-03-08 21:26:59 · 1109 阅读 · 0 评论 -
【C语言】实现一个通讯录(一:静态的实现)
通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址实现以下功能:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人这里我用的是VS2013编译器首先,我们定义好主函数。#include"head.h"i原创 2016-05-10 21:48:49 · 628 阅读 · 0 评论 -
【C语言】有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"
我的思路是,首先将这个字符串整个逆序,再将其中的每一个单词再次逆序,得到最终结果,刚开始没有思路的时候在纸上画画,有助于编程,这是我近期学习C语言的心得。接下来我们来编程解决这个问题。#include#include#includevoid reverse(char *start, char *end){ assert(start); assert(end); while (原创 2016-05-21 00:18:23 · 2038 阅读 · 0 评论 -
【C语言】编写一个程序,当输入小写字母a,输出大写字母Z,当输入小写字母b,输出大写字母Y,以此类推,当输入小写字母z,输出大写字母A。
这个问题不仅仅是将字母转化成对应的小写或者大写字母。那我们应该怎么来解决呢,首先我们分析一下这个问题。 当输入的字母由a变为b时,对应的输出由Z编程Y,我们知道字符在内存中是以ASCII码值的形式存储的,也就是说,当输入的ASCII码值增加1,对应输出的ASCII码值在原有变化的基础上减少一,也就是说,每一次都比上一次的距离远2,于是我们选择将a-Z的ASCII码值变化记录下来,之后的变原创 2016-05-21 14:47:06 · 21280 阅读 · 1 评论 -
【操作系统】C语言模拟操作系统实现动态分区分配算法
#define _CRT_SECURE_NO_WARNINGS 1 #include#include#include#include#define N 10000int n1;//空闲分区的个数int n2;//作业区的个数struct kongxian{ int start; //起址 int end; //结束 int length; //长度}kongxi原创 2016-09-01 17:39:08 · 11413 阅读 · 1 评论 -
【操作系统】C语言模拟操作系统优先数调度算法
——————————————————————————————————头文件————————————————————————————————————————#define _CRT_SECURE_NO_WARNINGS 1 #ifndef _SCHEDULING_H__#define _SCHEDULIHG_H__#define N 5#include#include#includ原创 2016-09-01 17:34:00 · 7787 阅读 · 0 评论 -
【C语言】模拟实现strstr
1.函数strstr的功能 strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。找不到则返回错误2.模拟实现 #include#includechar* my_strstr(const char *dest, const char *src) { const char *pdest = dest; cha原创 2016-08-18 15:40:33 · 310 阅读 · 0 评论 -
【C语言】单链表相关面试题(二)
上篇博客介绍了查询链表中间结点,删除非尾结点,逆序链表三个问题。有兴趣可点击链接查看:单链表相关面试题(一)此篇博客将介绍:1.删除倒数第k个结点(k>1)2.合并两个有序链表3.判断链表是否带环,若带环求环的长度,找出环的入口点4.判断两条链表是否相交,相交则求出交点。一、删除倒数第k个结点1.算法思路: 仍然通过设置快慢指针的方法解决,快指针每原创 2016-06-30 18:18:37 · 366 阅读 · 0 评论 -
【C语言】约瑟夫环(用单向循环链表解决)
约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。这里我用单向循环链表来解决这个问题。我们先考虑几种情况:当m=1和k=1的时候,要挨个删除链表中的结点。在k!=1和m=1的情况下,指针必须先向后移动到k的位置,并且记住k的...原创 2016-06-05 19:42:32 · 16864 阅读 · 1 评论 -
【C语言】字符串右循环移位
请实现字符串右循环移位函数,比如:“abcdefghi”循环右移2位就是“hiabcdefg”.函数原型:void RightLoopMove(char *pStr, unsignedshort steps) 函数参数说明: pStr: Point to a ‘\0’ terminated string steps: The rotate shift numbers原创 2016-05-28 21:19:52 · 1248 阅读 · 0 评论 -
【C语言】实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。
功能:实现对一个8 bit数据(unsignedchar类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。函数原型: void bit_set(unsigned char *p_data, unsignedchar position, int flag) 函数参数说明: P_data是指定的源数据,position是指定位(取值范围1~8);flag表示是置0还是置原创 2016-05-28 16:58:07 · 6778 阅读 · 0 评论 -
【C语言】用C语言测试计算机大小端问题
首先,什么是大端模式,什么又是小端模式呢?大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部原创 2016-05-28 12:05:41 · 665 阅读 · 0 评论 -
【Linux】webbench-1.5源码剖析
前言想法来源于博客:http://blog.jobbole.com/79023/ 里面说了值得剖析的10C语言开源项目,源码下载链接也有。注意是Linux下的C语言项目,下载完毕后使用解压命令:tar zxvf webbench-1.5.tar.gz解压,解压完毕进入目录切换到root用户安装使用。 1.make 2.make install 此时可能会出现错误提示: install: c原创 2017-04-21 12:46:12 · 733 阅读 · 0 评论