![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言编程
汪汪要努力呀
这个作者很懒,什么都没留下…
展开
-
【c语言】——有关字符串查找的两个算法
假设现在有这样一个问题:有一个文本串S,和一个模式串P,现在要判断S中是否有和P匹配的子串,并查找P在S中的位置,怎么解决呢?这篇文章就为大家介绍了关于这个问题求解的两种算法。一、BF算法BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符...原创 2020-02-12 20:03:18 · 605 阅读 · 0 评论 -
【c语言】——字符串功能的实现(补充)
上一篇文章我们简要的介绍了一下字符串,并实现了字符串的部分功能,这篇文章就让我们来实现字符串的其余功能吧~1、strncat字符串的连接,连接之后会带上\0,若是字符串不够要求的长度,直接忽略,不用添0char* my_strncat(char* dest ,char* str,int count){char* start = dest;while(*dest)++dest;whi...原创 2020-02-12 18:07:40 · 400 阅读 · 0 评论 -
【c语言】——c中const用法
const的相关用法提到const大家想必大家在程序中很少用到的吧,那么接下来我就要说说关于const的相关具体用法吧。首先,const的作用是定义常变量的,例如 :int contst ca=10,这也是大家最常用到的。其次,const的作用有两点!一、const定义的值不能被修改且必须赋值如图所示:ca的值已经是const定义10了,不能再修改成20.cb的值const定义了却没赋值...原创 2019-02-27 20:51:36 · 313 阅读 · 0 评论 -
【c语言】——二维数组
一、二维数组的特点1.行主序2.二维数组名不是二级指针二、一维数组与二维数组的比较1.int (p)[4]指的是指向一个长度为4的整型数组的指针(如图中的第一行)2.在一维数组中arr表示的为图中第一个格子的地址,类似地对应在二维数组中第一个格子的地址为brr[0].3.二维数组的存储为如图所示,如果定义数组越界,则如图所示,二维数组的地址还是一维的,所以自动相应位置后移。#incl...原创 2018-11-01 21:22:29 · 720 阅读 · 0 评论 -
【c语言】——关于数组的那些事儿
1.局部变量的定义答:局部变量是定义在函数体中的变量,内存区域在栈里,数据先进后出,地址下面大上面小。2.输入一段代码:#include<stdio.h>int main(){int i;int arr[10];for(i=0;i<=10;i++){arr[i]=0;printf("%d",i);}return 0;}它们在栈中的存储位置如图所示(栈...原创 2018-10-25 23:45:45 · 365 阅读 · 0 评论 -
【c语言】——字符串
一提到字符串,想必大家对此表示十分亲切且熟悉了吧,字符串在我们的日常生活中处处可见,因此在程序里面其也占着举足轻重的地位,下面就让我们来了解了解它吧~一、字符串的定义1、含义使用“ ”以‘\0‘结尾的一串字符。字符串的结尾标识为‘\0‘,只有用“ ”包括起来的都是字符串。2、使用案例字符串的错误定义char arr[5] = {'a','b','c','d','e'};//没有'\0'...原创 2020-02-05 17:54:54 · 400 阅读 · 1 评论 -
【c语言】——运算符
运算符的相关问题总结逻辑运算符1、|| 逻辑或运算符:表示只有一个为真的时候结果为真,只有一个为假的时候结果为假2、&& 逻辑与运算符:表示同时为真才为真,同时为假才为假3、a++,a-- 后置加加减减:表示先赋值再加加减减4、++a,–a 前置加加减减:表示先加加减减再赋值相关例题:第一题:设x,y,t均为int型变量,则执行语句x=y=2,t=3;t=x++...原创 2020-02-04 11:01:09 · 498 阅读 · 2 评论 -
【c语言】—— 类型转换
一、窄类型转宽类型,左边补符号位,无符号左边补0二、强制将宽类型转成窄类型,保留低数据例如下面一行代码输出:输出结果为:分析原因:...原创 2018-11-21 00:56:22 · 380 阅读 · 0 评论 -
动态开辟
1.提出问题:如何开辟?例子:开辟一个三行四列的动态二维数组如图所示:先创建一个一个数组,该数组里面存放一个指针,该指针指向另外一个数组。2、分析问题:第一步:如果这样使用则是错误的做法第二步改进做法:使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小。3、优化问题:使用typedef配合使用解决复杂问题...原创 2018-11-21 00:36:55 · 169 阅读 · 0 评论 -
【c语言】——关于指针的那些事儿
当我们遇到指针++的情况时,我们可能会有联想到三种情况:第一种:加一个字节第二种:加一个格子(4个字节)第三种:加一个数组那么到底是属于哪种情况呢,我们来做以下分析:输入一段代码#include&amp;amp;lt;stdio.h&amp;amp;gt;int main(){int arr[10]={1,2,3};int *p=arr;p++;*p=10;printf(&amp;quot;%d %d\n&a原创 2018-10-25 23:23:42 · 385 阅读 · 0 评论 -
函数的递归
1.递归的含义按照某一包含有限步数的法则或公式对一个或多个前面的元素进行运算,以确定一系列元素(如数或函数)的方法。(通俗化的说法就是自己调用自己)2.写一个关于递归的函数——Age函数int Age(int n){int tmp;if(n==1)tmp=10;elsetmp=Age(n-1)+2;return tmp;}3.Age从哪儿来?递归函数存储在栈中,每个递归函...原创 2018-11-01 20:40:44 · 391 阅读 · 0 评论 -
给定一个正整数,求其位数以及正序逆序输出
给定一个正整数,求其位数以及正序逆序输出#include<stdio.h>int Count(int n)//求正整数的位数{int tmp=0;do{n=n/10;tmp++;}while(n!=0);return tmp;}void PrintReverse(int n)//逆序输出每个数字{do{printf("%d",n%10);n=n/10;...原创 2018-10-25 22:15:22 · 1396 阅读 · 0 评论