C语言
文章平均质量分 60
We_are_family678
这个作者很懒,什么都没留下…
展开
-
srand()和rand()函数
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include<stdlib.h>定义函数 :int rand(void)因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND...原创 2018-03-08 08:08:26 · 315 阅读 · 0 评论 -
C语言中scanf函数与清理缓冲区fflush(stdin)
1、scanf的返回值scanf通常返回的是成功赋值(从标准输入设备赋值到参数列表所指定的内存区域)的数据项数,如果出错或是遇到end of file(注意,如果想从键盘输入EOF,在windows的DOS窗口用Ctrl+Z 或F6;在UNIX系统上,用CTRL+D。),则返回EOF,比如:scanf("%d%d", &x, &y); scanf函数仅在每一个数据域均有数据,并按回...原创 2018-04-03 18:12:24 · 731 阅读 · 0 评论 -
回车、换行、空格的ASCII码值—(附ASCII码表)
回车、换行、空格的ASCII码值回车,ASCII码13换行,ASCII码10空格,ASCII码32Return = CR = 13 = '\x0d'NewLine = LF = 10 = '\x0a'ASCII码表信 息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的...原创 2018-04-03 18:13:49 · 3811 阅读 · 0 评论 -
%d,%c,%s,%x各代表什么
转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数不显无意义...原创 2018-03-28 17:46:43 · 12935 阅读 · 1 评论 -
sscanf函数用法
在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数。C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据.int sscanf ( const char * s, const char * format, ...);sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 其中...原创 2018-04-04 15:56:54 · 624 阅读 · 0 评论 -
字符数组动态开辟空间和静态开辟空间
动态分配空间和静态分配空间,最直观的理解是编写代码时分配空间大小还是运行时动态分配空间大小。前者空间分配完成后无法更改,后者是在运行时可以根据自身需要来分配空间大小。例如:char buffer[1000]; //静态分配 /* *动态分配 */ scanf(“%d”,&MAXSIZE); char *buffer=(cha...原创 2018-04-22 09:26:40 · 1805 阅读 · 0 评论 -
希尔排序
希尔排序(ShellSort)是以它的发明者Donald Shell名字命名的,希尔排序是插入排序的改进版,实现简单,对于中等规模数据的性能表现还不错。首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序,此时,插入排序所作用的数据量比较小(每一个小组),插入的效率比较高。下面有颜色的是逻辑上的分组,并没有实际地进行分组操作,在数组中的位置还是原来的样子,只是将他...原创 2018-05-02 19:58:18 · 178 阅读 · 0 评论 -
可重入函数与不可重入函数
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着...原创 2018-05-14 10:08:26 · 167 阅读 · 0 评论 -
C/C++字节对齐
仔细讨论 C/C++ 字节对齐问题字节对齐的原因 为了提高 CPU 的存储速度,编译器会对 struct 和 union的存储进行优化,即进行字节对齐。对齐方式 对于 struct 或 union 中的 struct 或者 union 来说,它们的字节对齐标准就是它的所有成员中字节数最大的数据的字节数。一般情况下 C/C++ 的变量所占用的字节数 char: 1字节...原创 2018-05-16 08:43:41 · 278 阅读 · 0 评论 -
字符串循环右移n位函数
编写一个函数,作用是把一个 char 组成的字符串循环右移 n 个。比如原来是“abcdefghi” 如果 n=2,移位后应该是“hiabcdefgh” 函数头是这样的: //pStr 是指向以'\0'结尾的字符串的指针 //steps 是要求移动的 n void LoopMove ( char * pStr, int steps ) { //请填充... ...原创 2018-09-28 21:53:24 · 1531 阅读 · 0 评论 -
C语言字符串处理函数
下面介绍几个最常用的字符串函数。1. 字符串输出函数 puts格式: puts (字符数组名)功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。2. 字符串输入函数 gets格式: gets (字符数组名)功能:从标准输入设备键盘上输入一个字符串。本函数得到一个函数值,即为该字符数组的首地址。可以看出当输入的字符串中含有空格时,输出仍为全部字符串。说明 gets 函数并不以空格作为...原创 2018-04-03 16:38:46 · 313 阅读 · 0 评论 -
字符串和字符串结束标志
在C语言中字符串在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串常量总是以'\0'作为 结束标记,因此当把字符串存入数组时,也把结束符'\0'存入数组,并以此作为该字符串是否结束的标志。C语言允许用字符串的方式对数组作初始化赋值。例如:char c[]={'c', ' ','p','r','o','g','r','a','m'};可写为:char c[]={"C prog...原创 2018-04-03 16:19:59 · 4018 阅读 · 0 评论 -
快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10首先对数组进行排序,时间复杂度为(N*log2N) 然后令i = 0,j = n-1,看arr[i] + arr[...原创 2018-03-14 20:22:33 · 6811 阅读 · 1 评论 -
C语言变量
第一部分局部变量和全局变量定义:局部变量(Local Variable):定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效。再调用就是出错。全局变量(Global Variable):定义:所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。注意事项:①在main函数中定义的变量也是局部变量,只能在main函数中使用;同时,main函数中也不能...原创 2018-03-16 09:47:24 · 271 阅读 · 0 评论 -
C语言str函数系列
常常见到面试时让写str系列函数,用的少,经常忘记,记录一下。1、strcat()此函数原型为 char *strcat(char *dest, const char *src).功能为连接两个字符串,把src连接到dest后面;返回dest地址实现如下[cpp] view plain copychar * strcat(char *dest,const char *src) { ch...原创 2018-03-23 19:52:47 · 8557 阅读 · 0 评论 -
指针和const
C++禁止将const的地址赋给非const指针。如果读者非要这么做,可以使用强制类型转换来突破这种限制如果将指针指向指针,则情况将更加复杂。假如涉及的是一级间接关系,则将非const指针赋给const指针是可以的:int age = 39;int *pd = &age;const int *pt= pd然而,进入两级间接关系时,与一级间接关系一样将const和非const混合的指针赋...原创 2018-03-14 17:20:42 · 197 阅读 · 0 评论 -
C语言中各种格式字符说明
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,或输出字符串的地址。%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数...原创 2018-03-26 08:59:52 · 16356 阅读 · 0 评论 -
二进制文件与文本文件有哪些差异
1. 文本文件与二进制文件的定义大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。从上面可以看出文本文件基本上是定长...原创 2018-04-09 11:38:41 · 825 阅读 · 0 评论 -
char,short ,int ,long,long long,unsigned long long数据范围
速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong long -9223372...原创 2018-04-02 22:36:15 · 322 阅读 · 0 评论 -
关于sort函数的几种用法
随着练习代码的习题数量的增加,意识到了自己和系统学习c++的人之间还有很大的差距。今天学习的是sort函数,它是STL中可以直接调用的排序类函数,以下是我从另一篇博客中摘取的,自己用起来简单顺手的部分。1.要使用sort函数只需用#include <algorithm> 即可使用,语法描述为:sort(begin,end),表示一个范围,例如:int main(){ int a[10]...原创 2018-04-03 08:14:21 · 669 阅读 · 0 评论 -
C语言%*s用法
1.在scanf中使用,则添加了*的部分会被忽略(跳过),不会被参数获取。 例如:[cpp] view plain copyint a,b; char b[10]; scanf("%d%*s",&a,b); 输入为:12 abc 那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b) ...原创 2018-03-28 11:20:50 · 4991 阅读 · 0 评论 -
C语言-与0比较
整型 应当将整型变量用“==”或“!= ”直接与0 比较。 假设整型变量的名字为value ,它与零值比较的标准if 语句如下: if (0 == value) if ( 0 != value)指针 应当将指针变量用“==”或“!=”与NULL比较。指针变量的零值是“空”(记为NULL)。尽管NULL的值与0 相同,但是两者意义不同。假设指针变量的...原创 2018-10-08 15:43:43 · 731 阅读 · 0 评论