![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 58
srhqwe
这个作者很懒,什么都没留下…
展开
-
C语言函数:内存函数memset()函数以及使用
头文件:#include原创 2023-04-05 15:02:34 · 170 阅读 · 0 评论 -
C语言函数:内存函数memcmp()
【代码】C语言函数:内存函数memcmp()原创 2023-04-05 14:36:30 · 657 阅读 · 0 评论 -
C语言函数:内存函数memmove()以及实现与使用。
但一切的前提是,它们有内存重叠。如果没内存重叠,那么也不会遇到问题。此时无论从前往后还是从后往前都可以。头文件:#include memmove解决了这一问题。原创 2023-04-05 11:16:11 · 3487 阅读 · 1 评论 -
C语言函数:内存函数memcpy()以及实现
最后arr2只拷贝了01过去,arr2的则变成了0.因为strcpy不能将arr1拷贝到arr2,因此就急需一个函数是只要你是针对内存块拷贝,无论你是指针,说明返回的是任何类型指针的destination。destination和source与strcpy()一样,只是类型变成了字节。原创 2023-04-02 10:34:38 · 1888 阅读 · 0 评论 -
C语言函数:tolower()、toupper字符大小写转换函数。
因为这两个函数,是对一个字母进行大小写的转换。也就是一个char类型。因此即使返回的是int有4Byte,也可以使用char类型的数据接收,因为int类型也只会把数据存在后8bit中(忽略大小端存储),char类型只会取后8bit。tolower或者toupper不会按照地址对地址所对的内容修改,而是找到地址所对应的内容,然后对内容修改,最好返回修改好的内容。返回值都是int,需要注意的是:并不是返回地址,而是一个数据。返回的数据是改变后的数据。因此,我们需要手动将函数改好的内容放回到数组内部。原创 2023-03-22 19:16:58 · 3374 阅读 · 0 评论 -
C语言函数:判断字符函数,判断是否是某字符的函数,如:isdigit()、iscntrl()...
判断是否是0-9的数字字符(值得注意的是:说的是字符'1',而不是数字1)这些函数的参数都是一个字符,用于判断是哪种字符。返回值:如果是a~z,返回非0,不是a~z返回0。返回值:如果是数字,返回非0,不是数字返回0。它们的头文件都是:iscntrl:判断是否是控制字符。isspace:判断是否是空白字符。返回值:符合函数要求的字符返回。,不符合函数要求的字符返回。头文件:判断是否是小写字符a~z。头文件:原创 2023-03-18 16:09:13 · 990 阅读 · 0 评论 -
C语言函数:错误信息打印函数,strerror()与perror()
1.perror可以直接找到错误编码然后得到错误信息,而strerror需要一个全局变量errnum去储存代码的错误编码,然后将这个全局变量errnum(在使用全局变量errnum时,还需要引它的头文件)传入strerror函数中,最后才能得到错误信息。在结果中看到,错误信息中包含了perror的实参字符串,这个字符串被用来添加到了错误信息的最前面且被增加了一个':'字符。因此,会发现perror比strerror更方便使用,在实际应用中使用perror也是一个不错的选择。原创 2023-03-14 20:53:36 · 1682 阅读 · 0 评论 -
C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()
作用:字符串查找。在一串字符串中,查找另一串字符串是否存在。 str2在str1中寻找。返回值是char*的指针 原理:如果在str1中找到了str2,则返回在str1中存在的str2的字符串的第一个字符的地址。如果在str1中每找到str2,则返回NULL(空指针)。 a1是在arr1中寻找arr2,在arr1[1]~arr1[4]上找到了与arr2一样的字符串,则返回arr1中字符'b'的地址。 a2是在arr1中寻找arr3,在arr1中并未原创 2023-03-10 22:31:36 · 1609 阅读 · 0 评论 -
数据结构:复杂度的练习(笔记)
C语言题目:左旋字符串._srhqwe的博客-CSDN博客方法一(对应C语言题目:左旋字符串._srhqwe的博客-CSDN博客的方法一): 空间复杂度是O(1) :因为空间是可以重复利用的,tmp被释放掉,然后又用tmp。 时间复杂度是O(N*K):保存变量,然后旋转n-1次,就是N,其中要执行K次,所以是K*N。方法二: 开辟一块空间(数组)tmp,将要旋转的个数,对应nums元素的位置,然后直接放到tmp数组,在把nums剩下的元素,再放到tmp数组。原创 2023-03-05 13:08:11 · 1261 阅读 · 0 评论 -
C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp()
C语言函数:字符串函数及模拟实现strncpy()在了解strncpy前,需要先了解strcpy():C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()_srhqwe的博客-CSDN博客strncpy(): 作用:拷贝受限制长度的字符串,意思是:可以指定拷贝字符的个数到目标字符串内。限制字符串个数是为了让程序相对安全,降低访问越界等情况出现的可能性。但是不会绝对安全,一个程序员要写bug如挥手一般原创 2023-03-04 17:38:24 · 2568 阅读 · 0 评论 -
C语言函数:字符串函数及模拟实现strcmp()
C语言函数:字符串函数及模拟实现strcmp()strcmp()函数: 作用:进行字符串的比较大小。引入:如下代码,#define _CRT_SECURE_NO_WARNINGS#include int main(){ char* p = "wan"; char* q = "ban"; if (p > q) printf(">"); else if ("abc" > "abeiqeaf") printf(">="); //这两种原创 2023-03-04 15:55:56 · 2449 阅读 · 0 评论 -
C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()
C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()提示:字符串后有默认会有\0,而数组不会。strlen()函数:模拟实现strlen:#define _CRT_9SECURE_NO_WARNINGS#include #includeint my_strlen(const char* str)//从始至终str不改变,加上const使代码更完整{ int count = 0;//计数器 asser原创 2023-02-28 21:55:04 · 1221 阅读 · 0 评论 -
C语言题目:判断一个字符串是否是另一个字符串左旋转得来的。
C语言题目:判断一个字符串是否是另一个字符串左旋转得来的。这里有两种方法:第一种: 原理: 因为一个字符串旋转了元素个数次,那么就会与没旋转时一样。所以,所有只要创建一个循环,每次循环则旋转一次字符,并且判断此时的字符与被判断的字符串是否相同,如果相同,那么此时的字符串就是原字符串旋转而来的。原创 2023-02-24 21:23:50 · 1041 阅读 · 0 评论 -
C语言题目:左旋字符串.
C语言题目:左旋字符串原创 2023-02-17 21:29:19 · 1076 阅读 · 0 评论 -
C语言题目:在杨氏矩阵中,寻找某个数字是否存在
C语言题目:杨氏矩阵这种矩阵,只需要一个二维数组就可以创建,查找时也只需要在二维数组里查找就可以了。但是,如果这样查找,尝试过的人都知道,这样就需要使用两个循环,此时的时间复杂度就是0(n²)了。可是题目要求时间复杂度,为0(n)如果对时间复杂度不了解可以先看看:数据结构与算法:时间复杂度_srhqwe的博客-CSDN博客所以就需要使用其他方法:不妨先创建一个题目要求的矩形,这样的矩形可以用二维数组创建,为了方便就创建一原创 2023-02-13 20:19:45 · 1060 阅读 · 0 评论 -
C语言:字符串指针数组
C语言:字符串指针数组 C语言:字符串指针与字符串数组_srhqwe的博客-CSDN博客_c语言字符串指针和字符串数组 这个关于字符串指针的基础讲解,用于潜在了解字符串指针。 创建一个字符串指针:char* p = "hello world";那么char* 类型是必要的,那么我们可以知道char*[]这是char*类型的数组 ,如果加上变量名parr则就是:char * parr[]那么这就是一个数组,char类型的指针数组,里面存放的每个元素是char*,所以从p可以知原创 2023-02-08 20:21:06 · 3288 阅读 · 0 评论 -
C语言题目:利用冒泡排序的思想,仿造qsort函数。
C语言题目:利用冒泡排序的思想,仿造qsort函数。不了解qsort函数,可以看看这个,其中也有提到冒泡排序: C语言函数:qsort()函数_srhqwe的博客-CSDN博客 创建与qsort函数相同的形参,因为函数不需要有返回值,所以函数类型为void。原创 2023-02-04 14:31:41 · 811 阅读 · 0 评论 -
C语言函数:qsort()函数
C语言函数:qsort()函数原型: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))头文件: 刚开始学习qsort函数时,总是不明白qsrot的作用,以及它的意义。深刻学习后,发现只是几个关键点没找到,以至于联系不起来。 qsort函数是对任意类型的 数组 进行排序,这是很关键的点。 先来看看,qsort函数的参原创 2023-02-02 15:12:30 · 800 阅读 · 1 评论 -
C语言:回调函数
C语言:回调函数回调函数:通过函数指针调用的函数我认为,回调函数是一个过程,而这里却是说是一个函数。我利用自己的理解,解释一下回调函数这个东西:存在一个函数a和函数b,函数a的形参是一个函数指针,如果此时,b的地址传递给a的形参,参与a函数的运算,此时就叫做回调函数.原创 2023-01-31 14:21:14 · 416 阅读 · 0 评论 -
C语言:函数指针
C语言:函数指针,从懵逼到精通我们知道,指针是一个地址,C语言中想要取出地址就需要用到&.int a = 0;取整形指针出来就是 &a;int arr[] = {0};取数组指针出来就是&arr;而函数指针也不例外创建了函数: int fx(int a,int b);则把函数地址取出来就应该是&fx那么这里还需要引入一个知识我们知道arr数组名=数组首元素地址因此我们知道:arr不加&也是一个地址(数组首元素地址)但是arr != &arr原创 2023-01-30 15:27:55 · 246 阅读 · 0 评论 -
C语言题目:(编程题)喝汽水
20元--得到20瓶汽水--喝完,得到20瓶空瓶--喝了20瓶20瓶空瓶--换成10瓶汽水--喝完,得到10瓶空瓶--喝了10瓶10瓶空瓶--换成5瓶汽水--喝完,得到5瓶空瓶--喝了5瓶5瓶空瓶--换成2瓶汽水--喝完,得到3瓶空瓶--喝了2瓶3瓶空瓶--换成1瓶汽水--喝完,得到2瓶空瓶--喝了1瓶2瓶空瓶--换成1瓶汽水--喝完,得到1瓶空瓶--喝了1瓶最后20+10+5+2+1+1=39所以喝了39瓶可以按照这个思路写一下代码。原创 2023-01-14 20:49:27 · 113 阅读 · 0 评论 -
C语言题目:打印图形,菱形
C语言题目:打印图形,菱形打印此图图形,需要根据输入的数字大小,改变菱形的尺码不能是单纯的printf这里能做的方法有很多,一维数组,二维数组...等等这里举例最简单的,不用数组观察图像,可以分为上半部分和下班部分,然后上半部分是一行中有最多*的到只有一颗*的,反之就是下半部分,因此可以通过行数控制图形的大小,行数越多,说明图形越大,因此设定一个sz变量原创 2023-01-10 17:24:53 · 296 阅读 · 0 评论 -
C语言题目:在拥有0-n的整数的数组中,缺失了一个数,通过按位异或,找到这个数,并打印出来.
C语言题目:在拥有0-n的整数的数组中,缺失了一个数,通过按位异或,找到这个数,并打印出来.原理: 按位异或(^):相同为0,不同为1. 所以,两个数字按位异或最后为0,(a^a=0) 创建一个数x=0 先让x异或上0-n的数字 再让此时的x异或上数组里的每个数字 这样相同的数字就会消掉,只会留下不同的数字,而那个不同的数字就是缺失的数字.原创 2023-01-08 14:20:47 · 197 阅读 · 0 评论 -
C语言题目:打印0-100000之间的自幂数
C语言题目:打印0-100000之间的自幂数自幂数:该数字上的每位数字,它们的n次方(n是它们的个数,如:123,有三位数,n就是3) 相加的结果等于这个该数字如:153 : 1^3+5^3+3^3=153,这个就是自幂数原创 2023-01-06 16:48:48 · 288 阅读 · 0 评论 -
C语言:有符号数和无符号数比较的类型转换
除 int 与 unsigned int外的类型,如char,unsigned char原创 2023-01-06 16:20:21 · 971 阅读 · 0 评论 -
数据结构与算法:空间复杂度
数据结构与算法:空间复杂度数据结构与算法:时间复杂度_srhqwe的博客-CSDN博客先看这上面的,不然这里可能不理解空间复杂度:空间复杂度 (SpaceComplexity)是对一个算法在运行过程中临时占用存储空间大小的量度。. 一个算法在计算机 存储器 上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。. 算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表由调用函数传递而来的,它不随本算法的原创 2023-01-05 00:12:35 · 151 阅读 · 0 评论 -
C语言函数:malloc()创建数组
C语言函数:malloc()这里只是初级用法,作为了解.malloc()的作用是开辟一块内存空间,size是大小,单位是byte.malloc(5):开辟5个字节的空间malloc()函数的头文件存一般放在 stdlib.h 不同系统可能不一样!使用: 创建数组:char arr[50]:每次创建和使用数组的时候,可能会不够用,或者实用时发现空间开太大了,这样的会导致浪费,所以实用malloc可以自定义空间大小.上述的malloc(5)只是举例,通常不会这样创建.原创 2023-01-04 14:42:28 · 6325 阅读 · 0 评论 -
C语言:数组指针
C语言:数组指针原创 2023-01-02 23:10:29 · 108 阅读 · 0 评论 -
C语言:一维数组和二维数组传参的方法总结
C语言:一维数组和二维数组传参的方法总结原创 2023-01-02 22:44:59 · 126 阅读 · 0 评论 -
C语言:指针数组
C语言:指针数组如: int a = 10; int b = 20; int c = 30; int* arr[] = [&a,&b,&c];指针数组存放的都是指针,指针数组是上面类型的,里面的内容就都是什么类型的,因为是int*类型,这是指针类型,所以arr数组(指针数组)内存放的都是int*类型的指针,相当于,存放了三个内容: int * arr[0] = &a int * arr[1]原创 2023-01-01 20:45:15 · 56 阅读 · 0 评论 -
C语言:字符串指针与字符串数组
C语言:字符串指针与字符串数组字符串指针: char* p = "hello world"字符串数组 char arr[] = "hello world"p的地址是首元素地址'h'arr的地址也是首元素地址'h'原创 2023-01-01 20:21:31 · 238 阅读 · 0 评论 -
C语言:浮点数float的储存方式。
C语言:浮点数float的储存方式。原创 2023-01-01 16:48:32 · 1027 阅读 · 0 评论 -
C语言题目:关于整形提升以及符号等再内存中的变换
C语言题目:关于整形提升以及符号等再内存中的变换原创 2022-12-28 20:29:34 · 52 阅读 · 0 评论 -
C语言:判断系统是小端存储还是大端存储.
由于内存存放字节序不同,分为和把数据的位字节序的内容存放在地址处,把位字节序的内容存放在地址处。把数据的位字节序的内容存放在地址处,把位字节序的内容存放在地址处。原创 2022-12-28 19:54:55 · 502 阅读 · 0 评论 -
C语言:将一个字符串按空格反转顺序打印。
C语言:将一个字符串按空格反转顺序打印。将一个字符串按空格反转顺序打印。例如:I like fuzhou 打印:fuzhou like I原理(三步反转法):I like fuzhou①uohzuf ekil I 字符串全部反转②fuzhou like I 按空格再反转原创 2022-12-22 16:56:52 · 393 阅读 · 0 评论 -
C语言:求两个数的最小公倍数。
C语言:求两个数的最小公倍数。两个数的最小公倍数指的是:一个能被两个数字整除的最小正整数。原理:在两个数字中,取出较大的那个,用它来除以两个数字,如果可以整除,那么此时的数字就是两个数字的最小正整数。如果不能整除,就将他那个较大的数不停变大,直到此时的数字可以整除两个数字,那么此时的数字就是两个数字的最小正整数。原创 2022-12-22 15:09:16 · 250 阅读 · 0 评论 -
C语言:局部优先,全局往后.
C语言:局部优先,全局往后。函数内创建了一个和全局变量一样的局部变量,此时在函数内,局部变量的优先级最高。所以此时,函数内对a控制的,都是对局部变量a控制,全局变量不会改变原创 2022-12-21 12:12:21 · 600 阅读 · 0 评论 -
C语言递归:斐波那契数列
C语言递归:斐波那契数列,从第三个数开始,每一个数等于前两个数之和。原创 2022-12-20 22:54:42 · 465 阅读 · 0 评论 -
C语言:打印一个数在二进制中的奇数位的组合和偶数位的组合。
C语言:打印一个数在二进制中的奇数位的组合和偶数位的组合。通过位移操作符(>>)可以将偶数位置和奇数位放到第一位,然后通过按位与操作符(&)给它按位与上一个1(按位与(&):两个为1结果为1,否则就为0),这样就可以将这个位置上的数字抓到,并且通过printf打印出来。原创 2022-12-19 14:10:10 · 93 阅读 · 0 评论 -
C语言:求两个十进制数字,在二进制中不同位的个数。
求两个十进制数字,在二进制中不同位的个数。①用到(位移操作符)>>操作符,以及(按位与操作符)&操作符.②利用(按位异或操作符)^操作符,以及公式:n=n&(n-1)原创 2022-12-19 12:48:13 · 257 阅读 · 2 评论