
C语言
文章平均质量分 86
C语言
搬砖狗(●—●)
这个作者很懒,什么都没留下…
展开
-
程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义return 0;最终运行结果:这些预定义符号都是语言内置的。原创 2023-05-29 11:23:18 · 75 阅读 · 0 评论 -
strstr库函数模拟实现
我们可以知道strstr的作用就是:这些函数中的每一个都返回一个指向strCharSet在string中第一次出现的指针,如果strCharSet没有出现在string中,则返回NULL。如果strCharSet指向一个长度为零的字符串,则返回string。我们会发现,strstr就是在一段字符串中去找另一端字符串,如果有,就返回查找字符串中被查找字符串首元素以后的元素,如果没有,就返回空指针,如果被查找字符串为空,就返回原查找的字符串。首先我们了解一下strstr库函数的作用是什么?原创 2023-05-25 09:20:54 · 84 阅读 · 1 评论 -
atoi模拟实现
如果是,就继续进行下去,直到判断出来不是数字字符,此时我们定义的flag就起到作用了;此时我们又会发现这个0怎么看都不对,到底是字符串中本身就是0还是他是一个空字符串呢?此时我们程序还是非法状态,那么我们还继续判断什么时候是合法状态,当程序走到‘\0’时结束,这时就是合法状态了。(3)存在‘+’,‘-’号,我们在函数开始定义一个int flag=1,判断正负,然后跳过。通过上面的解释可以知道,atoi库函数就是将一段字符串转换成int类型的数字;(2)字符串中存在空格,我们就跳过空格;原创 2023-05-24 22:38:15 · 131 阅读 · 0 评论 -
字符函数与字符串函数
1.拷贝num个字符从源字符串到目标空间。2.如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。;return 0;原创 2023-05-25 16:42:48 · 107 阅读 · 1 评论 -
数据存储(C语言)
un原创 2023-05-20 08:43:32 · 98 阅读 · 1 评论 -
自定义类型详解(结构体+枚举+联合)
int a;char b;int age;//结构体的嵌套初始化。return 0;enum Day {enum Sex {以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。{}中的内容是枚举类型的可能取值,也叫 枚举常量。这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。enum Color //颜色 {原创 2023-05-26 16:35:42 · 105 阅读 · 0 评论 -
扫雷游戏C语言实现
此时我们运行程序会发现,我们的确可以实现排查雷的功能,但是没法像我们平时玩的那样周围没有雷的话爆炸性的散开,那么,接下来我们就对以上代码进行改进:在这儿如果(x,y)不是雷,我们就继续判断他周围8个值的周围有没有雷的存在,大体意思就是这样:那我们就不难想到这是一个函数递归的问题了,我们就分析一下他的限制条件都有啥:1.肯定不能越界数组;2,排查的位置肯定不是雷;3.该位置没有被排查过,也就是show[x][y]==‘*’;我们定义一个Unfold函数。函数实现的功能就是如果(x,y)周围有雷;原创 2023-05-13 21:06:30 · 151 阅读 · 0 评论 -
动态内存管理
malloc这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。1.如果开辟成功,则返回一个指向开辟好空间的指针。2.如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。3.返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。4.如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。free1.free函数用来释放动态开辟的内存。原创 2023-05-27 10:09:00 · 86 阅读 · 0 评论 -
指针进阶(C语言)
根据运算的优先级可以知道以上的arr1,arr2,arr3是先与[]先结合的,然后再与int*结合,就表明它们是一个数组,数组内存放的元素是指针类型的。pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参数,返回值类型为void。函数指针,顾名思义他就是指向函数的指针,用来存放函数的地址的,那么函数的地址怎么存放呢?指向函数指针数组的指针是一个 指针 指针指向一个 数组 ,数组的元素都是 函数指针;既然数组指针指向的是数组,那数组指针中存放的应该是数组的地址。原创 2023-05-21 20:54:45 · 132 阅读 · 0 评论 -
通讯录的实现(三种方式)
通讯录的功能:通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。test .c(2)结构体的实现在这儿我们需要创建两个结构体,一个用来存放人的信息:姓名、性别、年龄、电话、住址;另一个用来存放通讯录的信息。contact.h(3)菜单选项功能实现我们需要根据用户的需求进行选择,比如用户输入1,我们就知道他是要添加联系人,输入0,就是退出通讯录,在这儿我们可以用到枚举,将选择一一列举出来:contact.htest .c(4)全局变量的定义为了能更好的对原创 2023-05-29 21:49:48 · 758 阅读 · 0 评论 -
三子棋C语言实现
在这儿我们就创建test.c ,game.c,game.h三个文件,主函数我们就放在test.c文件中,游戏函数的定义放在game.c中,函数的声明放在game.h中。在这儿我们可以分析出来红色框选部分是存放我们所需要填写数据的部分,一共有三行,而蓝色框选部分为分隔行,分隔行只有两行;判断满没满就是判断有没有空格存在,如果有空格,返回一个0回到判断输赢的函数中,继续游戏,如果没有,就返回1,判断他是平局;(1)首先得创建一个棋盘, 也就是一个三行三列的二维数组,假设我们行用ROW来表示,列用COL来表示;原创 2023-05-12 15:40:59 · 84 阅读 · 1 评论