c基础
Thinker_serious
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求1000--2000年之间的闰年
/********************************求1000–2000年之间的闰年********************************/分析:闰年的判断方法:年份可以被4整除,但不能被100整除或可以被400整除,即为闰年。所以使用for循环依次判断1000到2000年之间的年份,用逻辑与&&与逻辑或||完成判断。判断条件:if (i % 4...原创 2018-09-26 16:20:44 · 786 阅读 · 0 评论 -
string.h库函数的实现---strstr
作用:寻找源字符串是否为目标字符串的子串。实现机制:用源字符串的指针与目标字符串的指针依次进行比较,当发现源字符串的连续字符都在目标字符串中包含,且源字符串走到’\0’,就说明源字符串是目标字符串的子串,则返回源字符串的首元素在目标字符串中的地址;如果目标字符串走到’\0’任然没有发现与源字符串相同的字符串,则说明源字符串不是目标字符串的子串,返回NULL(空指针)。注意:不可用原指针直接去...原创 2018-11-12 17:00:33 · 903 阅读 · 0 评论 -
string.h库函数的实现---strcat
作用:字符串拼接,将源字符串拼接到目标字符串的尾部,形成一个字符串。实现机制:字符串其实在存储的时候可以看做是字符数组,所以在传参时可以用两个指针接收。因为源字符串要拼接到目标字符串上,所以目标字符串的指针向后移动,直至到达’\0’,然后进行循环赋值将源字符串中的所有元素赋值给目标字符串,当将’\0’赋值给目标字符串是就完成了字符串的拼接。函数实现:在while循环赋值的问题,我在strcp...原创 2018-11-12 16:34:45 · 415 阅读 · 0 评论 -
string.h库函数的实现---strcpy
作用:字符串的拷贝,将一个字符串拷贝到另一个可容纳它的字符数组中。原创 2018-11-12 16:13:57 · 520 阅读 · 0 评论 -
string.h库函数的实现---memcpy
作用:从source的位置开始向后复制num个字节的数据到destination的内存位置。注意:1.这个函数在遇到’\0’的时候不会停下来。2.如果source和destination有任何重叠,复制的结果都是未定义的。实现机制:因为这个函数使用了void* 所以不能够解引用复制,所以应该先进行对指针的强转操作()。使用循环对源字符串的每一个字符进行复制到目标字符数组中,返回目标字符串的...原创 2018-11-13 17:12:56 · 683 阅读 · 0 评论 -
string.h库函数的实现---strcmp
作用:比较两个字符串的大小,按照词典序的原则对字符大小进行定义,依次比较对应的字符的大小。实现机制:字符串传参可用指针接收,将两个指针分别指向两个字符串的起始地址,解引用比较第一个字符的大小,如果arr1>arr2则返回一个大于0的数,arr1<arr2返回一个小于0的数,arr1 = arr2时,将指针向后移动,比较下一个字符,直至一个字符串走至’\0’,则另一个字符串即为较大的字...原创 2018-11-13 16:44:50 · 703 阅读 · 0 评论 -
string.h库函数的实现---strlen
strlen的实现:作用:求字符串的长度,给定字符串后调用strlen函数可求出给定字符串的长度实现机制:1.在函数中定义一个临时变量,用于记录字符串的长度,当指针向后走一步,如果是非‘\0’则加1,最终返回临时变量则为长度。2.不定义临时变量实现,用递归的思路,求一个字符串长度,例如:abcdef的长度就可以表示为1+bcdef的长度,bcdef的长度又可以表示为1+cdef的长度,依次...原创 2018-11-10 13:43:55 · 567 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串
题目:判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC分析:创建两个字符数组分别存储两个字符串,用函数compare进行比较,用两层循环,第一层循环用于每次将多少个...原创 2018-11-04 19:39:33 · 268 阅读 · 0 评论 -
字符串左旋
题目:实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDA,ABCD左旋两个字符得到CDAB分析:可以将ABCD存在一个字符数组中,左旋一个字符相当于把第一个存到临时变量中,然后将第一个字符之后的字符循环赋值给前一个位置,最后将临时变量的值放置到最后一个位置,就完成了字符的左旋。...原创 2018-11-04 19:07:29 · 421 阅读 · 0 评论 -
喝汽水问题
题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水分析:20元可以先买到20瓶汽水,所以可以编写一个函数求得20个空瓶可以得到多少瓶汽水。递归方法:可以先求得空瓶第一次能得到汽水的数量,然后求得第二次的到空瓶的数量,调用自己的函数可以的到第二次空瓶换得汽水的数量,以此计算直至判断条件空瓶的数量不足以换得汽水。递归函数方法参考:int EmptyBottle(in...原创 2018-11-06 17:35:26 · 1480 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次,找出这两个数字
题目:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。参考代码:#include<stdio.h>#include <windows.h>void find_num(int arr[], int len){ int i = 0;//循环变量 int ret = 0;//记录所有值异或的结果 int pos = 0;...原创 2018-11-06 17:21:03 · 1105 阅读 · 0 评论 -
简单计算器的实现与优化方法
题目:用程序实现一个简单计算器,能够进行加减乘除的基本运算分析:利用分支语句进行选择不同的算法,对两个数进行不同的计算。输出对应函数返回的值,就是最终的计算结果。代码如下:#include <stdio.h>int DIV(int a,int b){ return a / b;}int MUL(int a, int b){ return a * b;}in...原创 2018-11-01 15:41:52 · 1469 阅读 · 1 评论 -
杨氏矩阵
题目:一个二维数组,数组的每行从左到右是递增的,每列从上到下是递增的,在这样的数组中找一个数是否存在。时间复杂度小于O(n)。分析:在二维数组中找一个数,应该遍历整个数组找这个数,但是题目中的二维数组每行从左到右是递增的,每列从上到下是递增的,这样给搜索带来了便利。先判断这个数是否小于arr[0][0]这个数,或大于arr[row][col](数组中的最大值)这个数,如果满足其一就直接说明搜索不...原创 2018-10-31 16:16:52 · 449 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
题目:输入一个整型数组,实现一个函数,来调整该数组中数字的顺序使得数组中的所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。分析:在数组中有一组整型数据,调整奇数位于数组前半部分,偶数位于后半部分,即如果发现前半部分中发现一个偶数就需要把它换到后面。实现:判断这个数的奇偶性用%2的方法来判断,数组前后开始遍历数组判断前后两个数的奇偶性判断是否需要交换(前偶后奇需要交换,然后左边向右走一步...原创 2018-10-31 15:48:50 · 1014 阅读 · 0 评论 -
strlen/strcpy的实现(不使用库函数)
strlen功能的实现:strlen的功能:计算一串字符的长度设计思想:返回类型为整型int,参数为一个字符型指针变量char*int my_strlen(char* src)用字符指针接收字符首字母的地址,当指针指向’\0’时,计数器count停止++;代码如下:#include <stdio.h>#include <assert.h>int my_st...原创 2018-10-23 18:01:27 · 779 阅读 · 0 评论 -
“C语言操作符”
操作符算数操作符:+ - * / % 加减乘除为基本操作,%为取模;/ 和 %的区别是:/为取商,%为取余数;%只用于两个整数。原创 2018-10-23 14:51:08 · 990 阅读 · 1 评论 -
史上最简单三子棋游戏
史上最简单三子棋游戏,至今未发现更容易的三子棋*和傻子电脑玩三子棋游戏玩法介绍:首先,电脑会先在棋盘上放置一个X,然后玩家开始走,在没有X的放置O,在九个精美的格子上(假的,丑爆了,手动精美)展开激烈的厮杀(假的,一点都不好玩),最后有三个相同的棋子,无论是横竖撇捺的直线上连成一线。棋子的所有者获胜,如果在九个格子都被占用后未出现一方获胜,即为平局。实现原理:建立一个3*3二维数组,为了让游...原创 2018-10-14 17:32:37 · 854 阅读 · 0 评论 -
打印100--200之间的素数
/******************打印100–200之间的素数******************/素数:只能被一和它本身整除的数分析:用for循环将100–200之间的数与2–i进行取模运算,如果模最终等于0,说明除1和它本身外有一个数能整除它,则证明它不是素数;如果到程序结束模都不等于0,说明这个数是素数,则打印这个数。优化:①.如果一个数i在i/2下都没有找到一个数能整除它,则...原创 2018-09-21 15:00:17 · 1897 阅读 · 0 评论 -
string.h库函数的实现---strchr
作用:在字符串中找到一个字符首次出现的位置。实现机制:循环遍历整个字符串,找不到就向后移动,直至到达’\0’,返回NULL,如果找到就返回首次出现字符的地址。函数实现:char* my_strchr(const char* dest, char f){ assert(dest != NULL); while (*dest != f) { dest++; } if (*des...原创 2018-11-12 17:16:39 · 614 阅读 · 2 评论
分享