- 博客(27)
- 收藏
- 关注
原创 memcpy
void* Mymemcpy(void* dst, void* src, int count){ assert(dst && src); void* p = dst; while (count != 0) { *(char*)dst = *(char*)src; ((char *)dst)++; ((char *)src)++; count--; } return p;}int main(){ int arr1[10] = { 1,2,3,5,6 }
2021-06-28 23:32:35 181 1
原创 memmove
mommovevoid* Mymemmove(void* dst, void* src, int count){ assert(dst && src); void* p = dst; if (src > dst) { while (count != 0) { *(char*)dst = *(char*)src; ((char*)dst)++; ((char*)src)++; count--; } } else { count--
2021-06-27 23:29:27 128
原创 判断子串在主串中位置的函数——strstr函数
我们首先还是来看一下strstr在msdn中的定义:char *strstr( const char *string, const char *strCharSet );The strstr function returns a pointer to the first occurrence of strCharSet in string. The search does not include terminating null characters.strstr函数返回字符串中第一个出现的strCh
2021-06-24 22:01:49 1119
原创 strcmp和strncmp
strcmp和之前一样我们先来看看strcmp在msdn中的定义:The strcmp function compares string1 and string2 lexicographically and returns a value indicating their relationship.strcmp函数按字典顺序比较string1和string2,并返回一个表示它们之间关系的值。这里有这么几点需要注意: 1.strcmp函数对字符串比较的实质是比较双方的ASCII码 2.strcmp
2021-06-23 23:23:14 291
原创 strcat和strncat
strcat我们依旧先看一下strcat函数在msdn中的解释:The strcat function appends strSource to strDestination and terminates the resulting string with a null character. The initial character of strSource overwrites the terminating null character of strDestination. No overflow
2021-06-22 22:25:45 514
原创 简易的扫雷展示
#define _CRT_SECURE_NO_WARNINGS 1#define ROW 9#define COL 9#define ROWS ROW + 3#define COLS COL + 3#define MINE_COUNT 10#include<stdio.h>#include<stdlib.h>#include<time.h>void InitBoard(char board[][COLS], int row, int col, char
2021-06-21 23:05:36 87
原创 strcpy和strncpy
strcpy我们先来看看在msdn中是如何解释这个函数的:char *strcpy( char *strDestination, const char *strSource );The strcpy function copies strSource, including the terminating null character, to the location specified by strDestination.strcpy函数将strSource(包括终止的空字符)复制到strDesti
2021-06-20 22:56:42 108
原创 谁是凶手?
谁是凶手?一、题目二、具体实现1.思路2.具体实现总结一、题目今天做了一道很有意思的题目,题目是这么说的:某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。二、具体实现1.思路拿到这个题的时候基本是大脑一片空白?要说让我拿数学做这道题那肯定是分分钟拿下,但是要写一个程序,我当时在想,这**也能编程实现
2021-06-19 23:11:14 143
原创 数据在内存中的存储
数据在内存中的存储前言一.原码,反码,补码二、整型数据在内存中的存储三、浮点型数据在内存中的存储1.思考2.答疑解惑总结前言我们知道,创建一个变量就要在内存中开辟一块空间,开辟的这块空间的大小是取决于你数据类型的,变量又可以分为很多类,有整型变量,有浮点型变量,有字符型变量等等,我们今天所要分析的就是整型和浮点型在内存中的存储方式。提示:以下是本篇文章正文内容,下面案例可供参考一.原码,反码,补码我们首先来了解一下原码,反码,补码三个概念。他们三个的表示方法有两个共同的地方,就是都是分为符号位
2021-06-18 23:54:46 157 1
原创 初识C之五花八门的操作符2
操作符2前言一、操作符回顾二、初窥门径(续)5.单目操作符6.关系操作符7.逻辑操作符8.条件操作符9.逗号表达式10.下标引用操作符总结前言上一节我们讲了四种操作符,今天我们来继续补充剩下的一些操作符。一、操作符回顾名称符号算术操作符+ - * % /移位操作符<< >>位操作符& l ^赋值操作符=单目操作符! - + & sizeof ~ – ++ * (强传类型)关系操作符&g
2021-06-17 23:57:21 268
原创 初识C之五花八门的操作符1
操作符1前言一、操作符?二、初窥门径1.算术操作符2.移位操作符3.位操作符4.赋值操作符总结前言在C语言中,有很多语句有着特殊的功能以及作用,那么有一些符号也一样和语句一样起着重要的作用,我们把这些有作用的符号叫做操作符,今天就让我们一起来认识一下C语言中的一些操作符。一、操作符?操作符(也叫运算符)——它们是一些表示特定的数学或逻辑操作的符号。操作符的种类繁多,大体可以分为11类:项目Value算术操作符+ - * % /移位操作符<<
2021-06-16 22:24:57 240 1
原创 大端存储和小端存储
大端存储和小端存储1.大端模式2.小端模式3.如何判断现在的系统的大小端模式总结1.大端模式大端模式又叫大端存储,是指高数据存放在低地址,将低数据存放在高地址,地址从小向大增加,数据从高位向地位存放,我们以一个int类型的变量来作说明:int main() { int i = 256; return 0;}我们来看用一张图来表示一下:我们都知道数据的存储都是在栈里进行的,并且是由栈底开始往栈顶存,也就是由高地址存向低地址,那么对于int类型的i,我们知道它所占的字节数是4,那么它里面的八
2021-06-15 23:53:26 2783
原创 初识C之循环语句中的两个关键字
两个重要的关键字前言1.break2.continue总结前言我们在之前简单的介绍了循环语句的三剑客,我们也知道了循环语句的一些基本性质,我们知道循环语句一定要有的三要素,初始化,条件判断以及调整变量,那如果我想在循环过程中找到某一个结果的时候就让循环停止,而非让循环持续到结束,我要如何做呢?这就不得不提到两个重要的关键字——break和continue了。1.break我们首先用一段代码引出我们的主人公break:int main() { int a = 0; for (int i =
2021-06-14 22:21:38 567 4
原创 初识C之循环语句三剑客
循环语句前言一、循环是什么?二、循环语句三剑客1.for循环基本介绍执行顺序注意事项2.while循环基本介绍执行顺序注意事项3.do while循环基本介绍执行顺序注意事项总结前言上一篇我们简单的介绍了选择语句两兄弟的基本介绍以及各自存在的缺陷,那么C语言中除了选择语句还有很多其他的特殊语句,我们今天要介绍的就是——循环语句三剑客。一、循环是什么?提到循环语句就不得不先说一下循环,因为你既然叫循环语句,那么肯定是在循环的情况下才可以去使用这个循环语句。那么循环是什么呢?就是同一件事情我们要完成
2021-06-13 18:43:18 455
原创 初识C——你好,选择语句
选择语句前言一、两种选择语句二、选择语句两兄弟1.if语句基本介绍需要注意的问题(1)else的匹配(2)缺陷2.switch语句基本介绍需要注意的问题(1)default的使用(2)break的使用3.缺陷总结前言写了好几天的博客,突然发现自己好像有很多基础的地方没有写到,既然是和大家一起学习,我觉得这些基础一点的东西还是很有必要拿出来说一说,跟大家交流一下我的心得体会。在C语言中,由一个分号";"隔开的就是一条语句,打个比方:printf("hahaha");这就是一条语句,在C语言中,
2021-06-12 22:40:27 166
原创 浅析static
static前言一、static是什么?二、static的用法及作用1.static修饰局部变量2.static修饰全局变量3.static修饰函数总结前言C语言中有许多关键字,每个关键字都有着不同的作用以及意义,例如typedef的作用是起别名,const的作用是让一个变量变成常量等等,而今天要说的是一个可以修饰变量和函数的关键字——static。提示:以下是本篇文章正文内容,下面案例可供参考一、static是什么?Static是C语言中众多关键字其中之一,其作用是修饰变量和函数,那么具体
2021-06-11 22:57:08 97 1
原创 初识C语言之常量与变量
常量与变量前言一、变量1.全局变量和局部变量全部变量局部变量2.二者的区别二、常量字面常量const修饰的常变量#define定义的标识符常量enum枚举常量总结前言今天要说的这哥俩,是所有的程序里不可或缺的元素之一,所有程序中一定都能看到这哥俩的影子。是它,是它,是它,就是它!我们的朋友~小哪吒!不好意思走错片场了。今天要介绍的就是——常量和变量。一、变量1.全局变量和局部变量在C语言中,会变化的值就用变量来表示,这个变化的方法方式是可以由我们人为规定的。变量在命名是需要注意,变量名的第
2021-06-10 13:41:47 208
原创 小时候最爱玩的三子棋(井字棋)它来了
三子棋前言一、设计思路?二、程序框架1.大体框架2.逐个实现最终成果前言根据前面一段时间的学习,我觉得自己对C语言已经有了算是入门级别的一个了解,今天就用之前所学到的知识来实现一个简单的三子棋程序,也就是我们平时所说的井字棋。一、设计思路?做一个三子棋程序都需要写什么呢?游戏菜单创建一个棋盘,即一个二维数组,并初始化打印棋盘成“井”状玩家下棋,用X表示判断游戏状态的条件,胜?平?负?继续?电脑下棋,用O表示判断游戏状态的条件,胜?平?负?继续?循环2~7二、程序框架1.
2021-06-09 16:42:12 589 2
原创 初识C语言之冒泡排序
冒泡排序的实现提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录冒泡排序的实现前言一、基本思路二、具体实现1.冒泡排序1.02.冒泡排序2.03.冒泡排序3.0总结前言冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他
2021-06-08 13:36:54 300 1
原创 递归4之递归的利弊
递归的利弊文章目录递归的利弊前言一、递归是什么?二、递归与非递归处理斐波那契数列1.递归2.非递归3.对比总结前言前面经过对递归的了解与学习,让我处理问题多了一种思考方式,递归确实是一种很不错的处理问题的方式,但是不是所有的问题都可以用递归来处理,也不是所有的问题都适合用递归处理,今天我们就探讨一下递归在处理一些问题方面的利弊。一、递归是什么?回顾一下递归到底是什么,递归就是让程序不断调用自身,最后达到我们预期的目标的一个技巧。在一些复杂的问题中,递归可能只需要少量的代码就可以描绘出解题过
2021-06-07 13:16:14 629
原创 递归3之汉诺塔的实现
汉诺塔的实现前言一、汉诺塔是什么?二、实现思路1.尝试找出规律2.代码初步思路三、最终实现总结前言一、汉诺塔是什么?汉诺塔,又称河内塔,讲的是在一根柱子上从下往上按照大小顺序摞着64片圆盘,要求把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。二、实现思路1.尝试找出规律我们假设在柱子上有n个圆盘,三根柱子分别为A,B,C,A为起始柱子,B则是起到中转作用的中转柱子,而C就是目标柱子。先穷举出n较小的一些情况,看看能不
2021-06-06 18:10:41 156 1
原创 递归2之对青蛙跳台阶和斐波那契数列的思考
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档对青蛙跳台阶和斐波那契数列的思考前言一、青蛙跳台阶和斐波那契数列是什么?二、两者的逐个实现1.青蛙跳台阶2.斐波那契数列总结前言昨天我算是初步了解了递归并且做了一定的练习,今天就来看一看递归的而两个经典案例:青蛙跳台阶和斐波那契数列的实现。一、青蛙跳台阶和斐波那契数列是什么?青蛙跳台阶和斐波那契数列算是递归的两个经典案例了。青蛙跳台阶就是说有一个青蛙,他面前有n级台阶,青蛙每次可以跳一级或者两级台阶,这个呢是根据青蛙的心情来看
2021-06-05 14:02:38 502 2
原创 初识C语言之递归1
什么是递归?通俗的来讲,就是程序调用自己来完成问题的一种编程技巧。递归的主要思考方式就是大事化小,把一个复杂的问题简单化,找到其中的规律,缩小原问题的规模。递归有两个必要条件,首先呢一定要有一个限制条件,当满足这个限制条件的时候递归就停止了,不再继续,因为如果没有限制条件,程序就会一直调用自身,不断的开辟新的空间和内存,最后会导致堆栈溢出或者程序崩溃。其次就是每一次递归调用之后要越来越接近这个限制条件,原因也和前面说的一样,如果离限制条件越来越远了那就等于没有限制条件。最后,如果想要递归,满足上面两个条件
2021-06-04 18:37:12 85 3
原创 初识C语言之十个整数找最大
我的想法是定义一个整形数组,里面放10个数字,然后定义一个变量left来代表数组的下标,用arr[left]和arr[left+1]比较,如果前者大于后者则left不变,如果前者小于后者则left=left+1,然后继续循环判断,最后输出arr[left]。代码如下:int main() { int arr[10] = {2,3,4,5,1,2,3,4,5,9}; int left = 0; int i = 0; int j = 0; for (i = 0; i < 10; i++)
2021-06-03 14:26:32 276 2
原创 初识C语言之指针入门1
什么是指针?指针其实就是一个变量,不过其特殊的地方在于只能存储地址。如:int main() { int a = 1; int* p = &a; printf("%d\n", *p); return 0;}此时p就是一个指针,它里面存储的是变量a的地址
2021-06-02 13:43:02 1073
原创 初识C语言之阶乘的打印问题
给定一个数,要求打印该数的阶乘?首先应当定义程序的目标,分析一下可知,程序的目标应该是最后的阶乘结果。明确一下解题步骤及初步设计程序,要打印最后的阶乘结果,首先肯定要用到循环语句,定义变量i,j,i是要求的数,在循环体中,以i>0且i自减作为条件,而j则是循环里每一个i的相乘,最后输出j即可。下面是代码的实现:int main() { while (1)//这里我想一直可以输入,所以加了一个循环条件 { int i; int j = 1; printf("请输入一个数字:\
2021-06-01 11:06:04 1641 11
原创 初识C语言之如何打印100~200之间的素数
初识C语言之如何打印100~200之间的素数首先得定义程序的目标,既然是打印素数,那就得了解什么是素数,素数即除了1和自身以外不能被整除的数字,这也是判断素数的唯一标准。然后就是明确一下解题步骤,给定一个数,我们需要用它除以所有小于它/2的除1之外的正整数,也就是从2开始遍历一直到这个数/2,(至于为什么是它/2,因为所有合数的最小因子一定是大于等于2的,所以说当一个数在它/2之前仍然没有找到因数的话,这个数一定是一个素数。)如果没有遍历结果是它不能整除任何一个数字,那么它就是素数。接下来就是设计程序
2021-05-31 13:07:15 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人