
初学者
iTXCode
受不了规律的苦,就要遭平庸的罪.
展开
-
关于结构体指针和typedef 的简单理解
学习二叉树的建立时,利用先序遍历建立二叉树的过程中我遇到了一个一直没有理解清楚的问题,那就是结构体指针使用问题.结构体还是可以理解清楚的,但是自从它和typedef 还有指针 “勾搭” 在一起后,就让我有了一丝的困惑.这到底是怎么回事呢?终于我忍不住了,想要彻底调查清楚它们之间的猫腻。一起来看下面这个程序(不是完整的测试用例)#include<stdio.h>typed...原创 2020-03-26 09:54:31 · 451 阅读 · 0 评论 -
Linux-系统下cat指令与more指令的异同
cat指令的功能语法cat 选项 文件功能查看目标文件的内容使用方法主要选项-b 对非空输出行编号-n 对输出的所有行编号-s 不输出多行空行more的功能大体功能相同与cat指令相同语法more 选项 文件功能more命令,功能类似 cat使用方法主要选项-n 对输出的所有行编号q 退出more...原创 2019-05-04 18:27:30 · 4118 阅读 · 0 评论 -
Linux||基础
一:Linux 的基本指令1.Linux 的基本指令和开发环境(操作方式:命令行操作)2.Linux 系统编程3. Linux网络编程Linux 的简介Linux是 一个 操作系统内核(操作系统=内核+一组配套的应用程序)内核来负责对于软件资源和硬件设备的管理我们使用的是Centos 操作系统(内核为Linux)Android (内核也为LInux),UbuntuRedha...原创 2019-04-27 12:31:50 · 200 阅读 · 1 评论 -
两个数交换值的几种方法
需要再创建临时变量方法一:#include&lt;stdio.h&gt;#include&lt;Windows.h&gt;int main(){ int num1 = 0; int num2 = 0; scanf("%d%d",&amp;num1,&amp;num2); printf("1:num1=%d,num2=%d\n&qu原创 2019-02-12 19:54:06 · 722 阅读 · 0 评论 -
strlen 与 sizeof 的异同!!!
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;windows.h&amp;gt;int main(){ char arr[100] = &quot;abcdefjhigklmnopqrstuvwxyz&quot;; printf(&quot;arr长度1=%d\n&quot;, strlen(arr)); printf(&a原创 2019-02-08 23:19:59 · 146 阅读 · 0 评论 -
100~200之间素数的几种求法!!
质数又称素数。 指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。NO.1:方法一#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){ int i = 0; int j = 0; for (i = 100; i &lt;= 200; i++){ for ( j = 2; j &lt;=...原创 2019-01-28 23:11:22 · 1230 阅读 · 0 评论 -
通讯录的简单实现!!!
一:函数思想1.因为程序代码较多,为了避免程序过于繁杂,将程序分成了两个.c文件(contact.c)和(test.c)和一个contact .h文件。2.cantact.h文件内容主要包括函数名和结构体的定义。3.contact.c文件主要用于定义函数的实现,而test.c则主要起到测试的作用2.程序代码1.contact .h文件中的内容#include<stdio.h>...原创 2018-12-14 00:02:16 · 3707 阅读 · 2 评论 -
模拟实现strncat
#include&amp;lt;stdio.h&amp;gt; //模拟实现strncat#include&amp;lt;string.h&amp;gt;#include&amp;lt;assert.h&amp;gt;void my_strncat(char *arr, const char *arr1,int n){ char *p=arr; char *q=(char *)arr1;原创 2018-12-01 00:48:50 · 390 阅读 · 1 评论 -
C++命名空间总结
命名空间一:命名空间的特点用途:解决命名冲突问题1.命名空间下可以放函数、变量、结构体、类namespace A{ int a = 10; //定义了变量 void b(){ //定义了函数 } struct test_struct { //定义了结构体 }; class Person{ //定义了类 };}2.命名空间必须定义在全局的作用...原创 2019-05-16 21:42:23 · 555 阅读 · 0 评论 -
Makefile:2:*** missing separator. Stop.错误的解决办法
补充:Linux项目自动化构建工具-make/Makefilemakefile 既为你编辑的项目自动化构建工具当你编辑好makefile之后,输入命令 make 时出现如下的错误,不要慌,是你自己编辑 makefile 时出现格式错误了。错误格式如下: Makefile:2:*** missing separator. Stop.解决办法如下出现这种错误的原因: 在...原创 2019-05-10 17:34:32 · 36795 阅读 · 2 评论 -
C++对C语言的加强点
c++对C语言的加强1.c++中全局变量的检测增强int a;int a = 10;在 C++ 中编译成功,但是在C语言中提示重定义错误2.函数检测增强,参数类型增强,返回值类型增强,函数调用的参数检测增强2.1 参数的类型检测增强int Add(num_1,num_2){ }//c++中显示错误未定义的标识符,C语言编译成功并未显示错误2.2 返回值类型增强int...原创 2019-05-17 00:14:08 · 182 阅读 · 0 评论 -
Linux的开发工具与使用
Linux 下的开发工具文章目录Linux 下的开发工具其他语言相关的编辑器Linux下的开发工具包管理器 : yum(命令行版的应用商店)yum 的基本用法su 能够切到管理员用户vim编辑器(神之编辑器)Vim的强大之处Vim 的竞争对手Vim 基于模式的方式完成编辑1.vim[文件]能够与Vim并肩的编辑器Sublimme Text(史上最性感的编辑器)Atom(Github官方编辑器...原创 2019-07-19 23:53:11 · 537 阅读 · 0 评论 -
串中找串(strstr的模拟实现)
串中找串这个串可不是羊肉串奥,喜欢撸串的盆有别失望啊。来看看我们的串吧。所谓的串中找串是指在一个字符串中查找另外一个字符串(所谓的子串)。想啥呢?当然不是羊肉串了。需求:1.我们的需求是当找到我们所找的子串的时候,返回父串中与子串相等元素在父串中的位置下标2.若没有找到对应的字符串则返回0No1:创建两个指针的方式#include<iostream>using ...原创 2019-06-27 00:30:00 · 166 阅读 · 0 评论 -
c/c++中的const
一:const简介const修饰只读变量,必须在定义的同时进行初始化编辑器通常不为普通的const只读变量分配内存空间,而是将他们保存在符号表中。二:const的用途1.修饰一般变量const int i=0;const int j=0;2.修饰数组int const arr1[]={1,2,3,4,5};const int arr2[]={1,2,3,4,5};3...原创 2019-06-23 13:33:05 · 136 阅读 · 0 评论 -
类中的内存对齐问题
类中的内存对齐问题首先提出几个问题1.空类是否占据空间大小?2.类中定义的函数是否计入类的大小当中?3.内部类是否计入外部类的大小当中?测试代码#include<iostream>using namespace std;class A{};class E{public: int a;};class B{public: void fun()...原创 2019-06-04 16:38:49 · 819 阅读 · 0 评论 -
实现只在栈上创建对象的类
实现只在栈上创建对象的类 满足条件:只能在栈上创建对象,即不能在堆上创建对象,因此将new的功能屏蔽掉即可,即屏蔽掉operator new和定位new表达式,注意:屏蔽了operator new,实际也将定位new屏蔽掉。#include<iostream>using namespace std;class Stack{public: static Stac...原创 2019-06-10 15:41:49 · 531 阅读 · 0 评论 -
实现只在堆上创建对象的类
设计一个只能在堆上创建对象的类实现类的条件1.构造函数私有化2.提供公共接口:在堆上创建对象3.在类外面无法创建对象,函数用类名调用,公共接口必须为static接口4.防止拷贝:<1>:拷贝构造私有化,只声明不实现<2>:拷贝构造声明成delete函数(C++11的特性)#include<iostream>//设计一个只能在堆上申请对象的类...原创 2019-06-09 09:32:34 · 464 阅读 · 0 评论 -
迭代器
迭代器迭代器的简介迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1):每种容器类型都定义了自己的迭代器类型,如string: string::iterator sit; 这条语句定义了一个名为sit的变量,它的数据类型是由string定义的iterator类型使用迭代器读取string中的每一个元素string s("hello bit!");stri...原创 2019-06-18 23:48:10 · 160 阅读 · 0 评论 -
模拟实现memmove!!
#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;string.h&amp;amp;gt; //模拟实现memmove#include&amp;amp;lt;assert.h&amp;amp;gt;void *my_memmove(char* ret,const char* dst, int n){ char *p=(char原创 2018-11-27 23:05:36 · 233 阅读 · 2 评论 -
模拟实现memcpy!!!
#include&amp;amp;lt;stdio.h&amp;amp;gt; //模拟实现memcpy#include&amp;amp;lt;string.h&amp;amp;gt;#include&amp;amp;lt;assert.h&amp;amp;gt;void my_memcpy( char* arr2, const char *arr1,int n){ char* ret=arr2;原创 2018-11-27 22:59:41 · 277 阅读 · 0 评论 -
strncpy函数的调用与模拟实现!!
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt; //模拟实现strncpyvoid my_strncpy(const char *brr, const char *arr[], int n){ char*p=(char *)brr; const char* q= arr; while(n--) { ...原创 2018-11-26 23:47:50 · 343 阅读 · 0 评论 -
扫雷游戏的简单实现!!!
扫雷游戏的简单运行一:扫雷游戏大体思想1.一个为测试部分test.h,已达到测试整个游戏正确性的目的。2第二个部分为game函数的头文件部分,将定义的函数名储存起来。3.第三部分为game函数本体部分,具体的实现部分,以满足游戏的正常运行。简单的数组与函数的结合应用 ,使自己对函数与数组的应用掌握的更加熟练一点。二:test.c文件#include&amp;quot;game.h&amp;quot;void men...原创 2018-11-03 18:52:45 · 957 阅读 · 0 评论 -
用递归与非递归的方法求第n位斐波那契数的值!
斐波那契数定义斐波那契数亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列和兔子数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&amp;gt;=2,n∈N*),用文字来说,就是斐波那契数列列...原创 2018-10-30 23:35:37 · 1818 阅读 · 1 评论 -
C语言版——三子棋——增加与人对决!!
三子棋函数分为三部分1.test.c文件2.game.h文件3.game.c文件改进思想:1.增加了人与人对决的man_game( )函数从而增加了一点小功能,使得玩家的选择变得更加广泛。2.men_game函数与game函数功能完全相同;只是分别调用了game.h 中不同的函数从而实现了自己的功能。一: 函数主体test.c文件#include&amp;quot;game.h&amp;quot;游戏菜单void...原创 2018-10-31 15:32:15 · 316 阅读 · 1 评论 -
用函数形式实现数组的初始化等操作!
对数组的一些操作创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。代码如下#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; void Init(int arr[], int sz) { /*初始化数组*/ int i; for(i=0; i原创 2018-10-24 14:12:27 · 1724 阅读 · 0 评论 -
递归与非递归方式实现计算字符串长度!!
1.用递归方法求字符串长度算法思想:1.首先判断字符串首元素是否为"\0"2.若是则继续调用函数通过递归方式判断下一位元素是否为"\0",并且#include&lt;stdio.h&gt;int my_strlen(char *p){ if(*p !='\0') { return 1+my_strlen(p+1); } else return 0;}int main(...原创 2018-10-25 22:22:49 · 1647 阅读 · 1 评论 -
用函数方法判断闰年!!
一: 用函数判断闰年1.判断输入整数是否是闰年的条件(1):该整数能被4整除但不能被100整除。(2):该整数能被400整除。2.编程思想(1):用自定义函数判断输入的整数是否满足判断条件,然后将判断结果传送到主函数中。(2):用主函数输出判断结果。二:程序代码#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;...原创 2018-10-20 23:07:15 · 12739 阅读 · 2 评论 -
你好,世界!
你好,世界! 第一篇博客我觉得写——你好,世界!是最合适的,因为我刚踏进编程的世界,才开始接触这个世界,感觉很棒。#include&lt;stdio.h&gt;int main(){printf(" 你好,世界!");printf(" Hellow world! ");return 0;}...原创 2018-10-20 07:56:18 · 631 阅读 · 0 评论 -
左旋右旋问题一次搞定!!!
左旋右旋问题的解决编程思想1.在左右旋函数中实现该函数功能首先要想好如何存放移位后的字符元素2.左旋时将字符串首元素赋给临时变量tmp而后将字符串元素依次前移一位3.将tmp的值再赋给字符串的最后一个元素,实现左右旋。4.合理运用循环,使得函数功能得以全部实现。题目要求:实现一个函数,可以左/右旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB...原创 2018-11-06 22:19:20 · 1401 阅读 · 1 评论 -
将字符数组:"student a am i", 改为"i am a student".!!!
反转代码思想:1.第一步求字符串长度 {自定义函数 My-Strlen}2.第二步是自定义打印函数 { print}3.第三步是将字符串进行反转{Reverse}反转成{I ma a tneduts}4.第四步是将ma转换成am{LocalReverse1}5.第五步是将tneduts转换成student{LocalReverse2}题目要求:有一个字符数组的内容为:“stude...原创 2018-11-09 21:47:20 · 352 阅读 · 0 评论 -
strcmp函数的调用与模拟实现
#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;assert.h&amp;amp;gt; //模拟实现strcmpint my_strcmp(const char* arr1,const char* arr2){ int ret=0; assert(arr1); assert(arr2); while(!(ret=*(unsigned char*)arr1-原创 2018-11-25 15:52:36 · 1332 阅读 · 1 评论 -
模拟实现字符串中寻找字符串的strstr函数!!
一:编程思想1:利用数组传参发生降维的特点将字符串首元素地址传到自定义函数中。2:在判断过程中若有部分字符相同则须将判断字符中的指针dst回指到数组arr2的首元素的地址处。3:但是对指向数组arr1的指针ret而言,若不与det所指的元素相同.则直接将指针arrr1所指的对象赋给ret使其重新开始判断。若在dst指向’ \0 '前指针dst与ret所指的对象都相同,则从*arr1所指的对象...原创 2018-11-24 23:34:31 · 236 阅读 · 0 评论 -
strncmp函数的调用与模拟实现!!
#include&amp;amp;lt;stdio.h&amp;amp;gt; //模拟实现strncmp#include&amp;amp;lt;string.h&amp;amp;gt;#include&amp;amp;lt;assert.h&amp;amp;gt;int my_strncmp(const char* arr1, const char* arr2,int n){ int ret=原创 2018-11-25 17:10:41 · 427 阅读 · 1 评论 -
利用指针模拟实现 strcat 函数!!
特别说明:由于vs2008中assert后面不能定义变量,所以将变量定义在了assert前面!!!一:编程思想(此处的arr1为被拷贝的字符串,arr2为要拷贝的字符串)1.拼接的时候注意函数传参时上传的是两个源字符串的首元素地址。2.必须要从被拷贝的字符串 arr1 未初始化字符的空间开始将要拷贝的字符串arr2的字符拷贝到被拷贝的字符串中。3.将arr2中’ \0 '拷贝到arr1中,...原创 2018-11-22 19:56:00 · 3290 阅读 · 0 评论 -
利用指针模拟实现strcpy !!!
特别说明:由于vs2008中assert后面不能定义变量,所以将变量定义在了assert前面!!!一:编程思想1.利用数组传参时发生降维的特点将数组首元素的地址赋给指针变量。2.利用指针将原数组中的字符复制到目标串中。3.最重要的是要将原数组中的 ‘\0’ 复制到目标串中,已达到结束复制的目的。二:代码如下#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;asse...原创 2018-11-21 19:15:21 · 678 阅读 · 1 评论 -
模拟实现strcat(拼接)!!
一:模拟实现strcat(拼接)1.程序代码#include&amp;lt;stdio.h&amp;gt; //模拟实现strcat(拼接)#include&amp;lt;string.h&amp;gt;void Mystrcat(char arr[], char brr[],int se, int sz){ int i=se; int j=se+sz; int x=0; for(;i&原创 2018-11-14 21:27:45 · 476 阅读 · 1 评论 -
strcpy的模拟实现(拷贝)!!
一:strcpy的模拟实现(拷贝)1:算法思想(1).首先确保目标字符串要足够长,要确保原字符串中的字符能够储存在目标字符串中。(2).将原字符串中的字符赋给与目标字符串中下标相同的元素。(3).需要注意的是必须将原字符串的’\0’也要赋给目标字符串,将目标字符串“截断”。以确保输出拷贝结果时不会出现乱码。(因为目标字符串长度远大于原字符串,若不将其“截断”就会将后续的字符也打印出来而后续...原创 2018-11-14 21:12:46 · 1344 阅读 · 0 评论 -
关于20元可以喝到多少瓶汽水的问题 !!
1.题目要求//1瓶汽水1.0元2个空瓶可以换一瓶汽水给20元可以多少瓶汽水(偷偷把汽水换成是可乐)2. 分析思路图就当是可乐吧,特意弄成了黑色。3.程序代码#include&lt;stdio.h&gt; int Add(int num){ int count=num; int tmp=num; while(tmp&gt;=2) { count+=tmp/...原创 2018-11-15 17:58:48 · 1349 阅读 · 1 评论 -
要求输入一个数字并且输出其每一位!!
要求输入一个数字,并且输出其的每一位例如:输入1257 ,输出1 2 5 7#include&lt;stdio.h&gt;void DigitSum(int n){ if(n&gt;9) { DigitSum(n/10); //每次调用时将输入的数最后一位去掉, printf("%d ",n%10); //每次调用都打印出第一位 ...原创 2018-11-07 23:19:17 · 4220 阅读 · 0 评论