![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
baixian110
这个作者很懒,什么都没留下…
展开
-
C语言实现扫雷游戏
整个代码实现是模仿B站up鹏哥说C语言完成的,有细节不明白的可以直接去看B站的视频。这里附上我的相关代码。原创 2023-04-17 21:59:40 · 70 阅读 · 0 评论 -
数组详解(含二维数组)
bubble_sort(arr)中arr表示的首元素的地址,虽然与数组其实地址是相同的,但是在bubble_sort中形参 arr[]实际只有一个元素,因为只传了一个元素过来,所以bubble_sort函数里面sizeof(arr)的返回值是1.这样是违规的,系统也不会把10个元素默认赋值为0,在VS中这样写过后实际上赋10个随机值,一旦我们人为赋值了第一个元素,系统就认为我们初始化了,所以剩下的我们没有人为赋值的元素也会赋值为0;这两种初始化是不同的,后者实际是四个元素,是一个字符串,多一个\0。原创 2023-04-16 00:00:54 · 550 阅读 · 0 评论 -
if else分支循环介绍
a= 0是不符合第一个if的判断语句的,所以根本不会执行if 也不会执行后面的else(这里要注意,这里if else没有用大括号括起来,但是还是默认全部是第一个if的子语句,因为系统默认if else是一条语句而不是两条语句,因为if和else每次只会有一个执行,永远不会同时执行。上面这段代码很多同学可能会认为输出的是哈哈,但实际是什么都不会输出,因为这里的else一定是和第二个if配对的(不要看它和第一个if齐平),实际在用vs2019时,系统会自动改成和第二个if对齐。与下面的代码是如出一辙的。原创 2023-04-14 10:51:12 · 147 阅读 · 0 评论 -
不使用strlen函数,不允许创建临时变量怎么求字符串长度
my_strlen(“cdef”)+1+1 = my_strlen(“def”)+1+1+1 以此类推。首先我们先来看看不使用strlen函数,我们自己怎么求字符串长度呢。但是这个程序里我们是创建了一个临时变量count的,我们从递归的角度出发。原创 2023-04-14 10:49:41 · 287 阅读 · 0 评论 -
C语言实现给定正整数1234,顺序输出各个位上的数字
/方法一:12334逆序出去4321是非常方便的,直接取取再取商即可,然后数组逆序输出。//例如给定1234,分别顺序打印出1、2、3、4。//给定一个数字,顺序打印各个位上的数。//方法二:采用递归函数的思想。原创 2023-04-14 10:11:37 · 1376 阅读 · 0 评论 -
基于VS2019的C语言静态库的创建,导入
这也是为什么要把函数声明和定义放两个文件里面,别人调用只知道我的函数的声明,但不是具体的实现方法。比如实现一个计算器,甲可以负责加的部分,也就负责add.h和add.c,已负责减,也就是负责sub.h和sub.c等等。函数的声明是放在一个.h的头文件里,所以,我们创建一个新的解决方案,就假设这是一个程序员写的某一个模块的代码,创建一个.h文件,将函数的声明放在这里面。如果这个模块是我们自己用,也就是在同一个解决方案里面用,那么,只需要引用我们自己创建的这个库函数就行,而引用自己的库函数模板是。原创 2023-04-14 00:54:29 · 1296 阅读 · 0 评论 -
数组传参的注意事项
这一句中arr作为实参传入函数,但是arr表示的是该数组首元素的地址。所以实际上在is_binary_search函数中的arr[]形参实际只有一个元素arr[1],所以length的值求出来是1,并非是9。所以第二种程序是错误的。所以数组传参一定要注意,传的参数仅仅是首元素的地址,并不能代表整个数组。将l求length的语句放到is_binary_search里面去,这样只需要传两个参数。我们先来写一个折半查找的程序。根本原因在于数组传参有问题。此时如果我们改动一下。原创 2023-04-13 23:47:03 · 61 阅读 · 0 评论 -
在vs中用C语言生成随机数(包含rand,srand,time函数详解)
用C语言在vs2019中使用rand‘srand'time函数生成随机数原创 2023-04-13 09:33:12 · 2986 阅读 · 0 评论 -
编写代码,演示多个字符从两端向中间移动,逐步显示
【代码】编写代码,演示多个字符从两端向中间移动,逐步显示。原创 2023-04-12 20:47:44 · 57 阅读 · 0 评论 -
如何在vs中直接查看整型的最大值
然后直接输入INT_MAX,并选中,然后右击——>转到定义,就可以看到最大值了。首先要包含头文件<limits.h>原创 2023-04-12 10:09:24 · 177 阅读 · 0 评论 -
多分支结构switch case结构
其实也没什么,结果就是所有的语句都被跳过而已.程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误.但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?它的执行过程是switch函数会去看day的值,day的值是几就会直接跳到case几去执行,前面的语句会直接跳过,但是后面的语句会继续执行,比如day等于3时,那么case34567都会执行。当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。这样我们就能保证在day==3时,程序及时跳出。原创 2023-04-12 09:11:10 · 278 阅读 · 0 评论 -
for循环的一些注意事项
答案是0次,一定要注意,判断条件里面是赋值语句并不是判断语句,所以k=0,赋值语句的返回值取决于赋的值,如果赋值为0,那么赋值语句返回值就是0,如果赋的值就是-1,那么赋值语句的返回值就是-1。首先i=0进入第一个for循环,j=0,进入第二个for循环,循环十次,此时j变成10,此后因为j没有办法初始化,所以就不会进入第二个for循环。表达式1 是初始化部分,用于初始化循环变量,表达式2是条件判断部分,用于判断循环终止的条件,表达式3是调整部分,用于循环变量的变化。此外for循环也是支持两个循环变量的。原创 2023-04-12 09:09:46 · 280 阅读 · 0 评论 -
getchar()详解
一开始没有输入时,缓冲区为空,然后执行到scanf的时候,用户输入123456,实际上缓冲区里输入的是123456\n,但是scanf取的数据是123456,所以scanf执行完,缓冲区里实际还留下了一个\n,然后getchar()取到的数据实际是\n,而\n的ASCII值与Y N的都不一样所以if elseif 都不会执行,直接执行 return 0 程序结束。按道理,程序是没有错误的,先输入一个字符密码,然后输入Y,则输出密码正确,输入N,则输出密码错误。即:如果正常读取,返回的是读取的字符;原创 2023-04-12 09:08:45 · 6617 阅读 · 0 评论 -
strncmp()详解
strncmp()长度限定的字符串比较函数strncmp()有三个参数:两个比较字符串的指针,一个无符号数代表比较的字符个数,返回类型为一个大于零小于零或等于零的整型作用:将C 字符串str1 的最多num 个字符与 C 字符串str2 的字符进行比较。 此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续往下比较,直到字符不同,或者直到达到终止空字符,或直到两个字符串中的num 个字符匹配,以先发生者为准。返回类型:...原创 2021-06-10 10:04:04 · 10779 阅读 · 1 评论 -
strncat()详解
strncat()长度限制的字符串追加函数C++ reference中对于strnca函数的定义输入三个参数:源字符串指针,目标字符串指针,追加长度(类型为size_z,可以理解为无符号数)返回类型为一个字符串指针作用:1.将source的前num 个字符附加到destination,再加上一个终止空字符。 (这个尤其重要,因为这个与strncpy()函数是不同的,strncpy()是加上多个’\0’知道字符数为num)2.如果source 中C 字符串的长度小于num,则只复制终止空字符之前原创 2021-06-10 09:33:47 · 1206 阅读 · 0 评论 -
strncpy()函数详解
srtncpy()函数长度受限制的字符串拷贝函数如上图,在C++reference中,strncp有如下三个参数:两个字符指针,一个size_t(这里就是无符号数的意思)类型的数,返回类型也为字符指针。这里可以与strcpy()对比一下作用:1.拷贝num个字符从源字符串到目标空间。2.如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加’\0’,直到num个。这里又几点需要注意:有关于源字符串长度,目标字符串长度和拷贝长度三者的关系而确定拷贝出的字符形式;具体见下图m原创 2021-06-10 08:37:57 · 2079 阅读 · 0 评论 -
strcmp() 相关知识点
strcmp() 相关知识点字符串的比较是千万不可以用“abdce” == “cdefg”这样的形式去写的例如`#include<stdlib.h>#include<stdio.h>int main(){ char* arr1 = "abcdef"; char* arr2 = "cdefgh"; if("abcdef" == "cdefgh" )//这里实际上比较的是arr1的首字符和arr2的首字符,这里是不等的,实际上即使前面一个字符相等,后面只要有一个字符不等原创 2021-06-09 16:59:12 · 202 阅读 · 0 评论 -
my_strcat()实现
#include<stdlib.h>#include<string.h>#include<assert.h>char * my_strcat(char* dest,char* src){char *ret = dest;assert(dest && src);//1.找到目的字符串的’\0’while(*dest != ‘\0’){dest++;}//2.追加while(*dest++ = *src++){}return re原创 2021-06-08 21:34:52 · 149 阅读 · 0 评论 -
strlen()的三种等价实现方法——my_strlen()
#include<assert.h>#include<stdlib.h>#include<stdio.h>//my_strlen()的三种实现方法//计数器实现int my_strlen1(const char* str){ int count = 0; assert(str != NULL); while(*str != '\0') { count++; str++; } return count;}//指针直接实现int my_s原创 2021-06-07 21:09:05 · 189 阅读 · 0 评论 -
数制转换(数据结构课程设计C语言版)
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <iostream>#include <math.h>#include<string.h>using namespace std;typedef struct SNode/定义一个栈,采用无头结点的单链表结构{ int data;//定义栈的数据域 struct SNode原创 2021-06-05 21:23:10 · 4281 阅读 · 0 评论