C语言随笔
C语言技术网-码农有道
二十二年的C/C++语言开发经验,擅长C/C++语言在数据处理和网络通信方面的应用,freecplus开源框架作者。
freecplus框架是UNIX平台下C/C++程序开发的业务层基础框架,由C语言技术网组织开发、维护。其目的是为C/C++程序员供免费的、开源的程序库。freecplus框架与C++标准库结合使用,可以极大的提高程序员的开发效率。
freecplus框架的初衷是为C/C++程序员提供功能强大、简单易用的函数和类,把程序员从纷繁复杂的C/C++底层代码中解放出来,程序员将更关注软件功能和业务逻辑的实现。
展开
-
C语言double数据类型介绍、示例和应用经验
1、浮点数的概念浮点数也称小数或实数。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小数。C语言中采用float和double关键字来定义小数,float称为单精度浮点型,double称为双精度浮点型,long double更长的双精度浮点型。2、测试double数据类型C标准规定,double类型必须至少能表示10位有效数字,且取值范围至少是10-37~10+...原创 2020-04-25 20:05:41 · 50976 阅读 · 0 评论 -
C语言把浮点数转换为二进制数的方法和示例
浮点数据转换为二进制的方法是:1)把浮点数拆分成两部分,小数点前面的整数和小数点后面的小数。2)分别把整数和小数部分转换为二进制,保存在字符串中。3)输出转换后和二进制字符串。1、整数部分转二进制字符串的方法1)把十进数除以2,记下余数(余数保存在字符串中),现用商除以2,再记下余数,如此循环,直到商为0。2)把保存余数的字符串反过来,就是结果。例如123转化成二进制:123/2=...原创 2020-04-25 16:41:53 · 20666 阅读 · 3 评论 -
C语言浮点数的输出方法和示例
1、浮点数的输出float采用%f占位符。double采用%lf占位符。测试结果证明,double不可以用%f输入,但可以用%f输出,但是不建议采用%f,因为不同的编译器可能会有差别。long double采用%Lf占位符,注意,L是大写。浮点数输出缺省显示小数点后六位。浮点数采用%lf输出,完整的输出格式是%m.nlf,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值...原创 2020-04-24 22:05:23 · 29193 阅读 · 0 评论 -
C语言科学计数法介绍和示例
1、科学计数法示例(book78.c)/* * 程序名:book78.c,此程序测试浮点数据的科学计数法。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525*/#include <stdio.h>int main(){ double dd; dd=123000000; printf("dd is %.2e\n",...原创 2020-04-24 21:45:46 · 58882 阅读 · 2 评论 -
C语言float数据类型介绍、示例和应用经验
1、浮点数的概念浮点数也称小数或实数。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小数。C语言中采用float和double关键字来定义小数,float称为单精度浮点型,double称为双精度浮点型,long double更长的双精度浮点型。2、测试float数据类型C标准规定,float类型必须至少能表示6位有效数字,且取值范围至少是10-37~10+37。...原创 2020-04-24 13:18:09 · 30706 阅读 · 0 评论 -
C语言字符型char和整型int的关系和示例
1、字符就是整数字符和整数没有本质的区别。可以给 char变量一个字符,也可以给它一个整数;反过来,可以给 int变量一个整数,也可以给它一个字符。char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII码表转换成对应的字符,如果以 %d 输出,那么还是整数。int 变量在内存中存储的是整数本身,如果以 %c 输出时,也会根据 ASCII码表转换成对...原创 2020-04-24 10:09:18 · 17463 阅读 · 1 评论 -
C语言isupper函数介绍、示例和实现
C语言isupper函数用于判断字符是否为大写字母(a-z)。在本文中,我们先来介绍isupper函数的使用方法,然后编写一个自定义的_isupper函数,实现与isupper函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int isupper(int c);3、功能说明判断参数c是否为大写字母,您可能会问:isupper函数的参数是i...原创 2020-04-23 16:02:39 · 16721 阅读 · 0 评论 -
C语言toupper函数介绍、示例和实现
C语言toupper函数用于把小写字母转换为大写字母。在本文中,我们先来介绍toupper函数的使用方法,然后编写一个自定义的_toupper函数,实现与toupper函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int toupper(int c);3、功能说明把小写字母转换为大写字母,如果参数c不是小写字母就不转换,您可能会问:to...原创 2020-04-23 16:11:50 · 26509 阅读 · 3 评论 -
C语言输出百分号%的方法和示例
在C语言中的printf函数族中,百分号%有特别的用途(占位符),不能直接输出。1、输出百分号%号的方法如何输出百分号?很简单,用两个%表示输出一个百分号。示例:/* * 程序名:book.c,此程序演示C语言printf函数族输出百分号%的方法。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525*/#include <stdio.h>...原创 2020-04-23 20:35:31 · 20812 阅读 · 0 评论 -
C语言tolower函数介绍、示例和实现
C语言tolower函数用于把大写字母转换为小写字母。在本文中,我们先来介绍tolower函数的使用方法,然后编写一个自定义的_tolower函数,实现与tolower函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int tolower(int c);3、功能说明把大写字母转换为小写字母,如果参数c不是大写字母就不转换,您可能会问:to...原创 2020-04-23 16:08:24 · 13270 阅读 · 0 评论 -
C语言islower函数介绍、示例和实现
C语言islower函数用于判断字符是否为小写字母(a-z)。在本文中,我们先来介绍islower函数的使用方法,然后编写一个自定义的_islower函数,实现与islower函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int islower(int c);3、功能说明判断参数c是否为小写字母,您可能会问:islower函数的参数是i...原创 2020-04-23 15:58:42 · 13018 阅读 · 1 评论 -
C语言isalnum函数介绍、示例和实现
C语言isalnum函数用于判断字符是否为字母(a-z和A-Z)或数字(0-9)。在本文中,我们先来介绍isalnum函数的使用方法,然后编写一个自定义的_isalnum函数,实现与isalnum函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int isalnum(int c);3、功能说明判断参数c是否为字母或数字,您可能会问:isa...原创 2020-04-23 10:12:11 · 11622 阅读 · 0 评论 -
C语言isdigit函数介绍、示例和实现
isdigit函数用于判断字符是否为数据字(0-9)。在本文中,我们先来介绍isdigit函数的使用方法,然后编写一个自定义的_isdigit函数,实现与isdigit函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int isdigit(int c);3、功能说明判断参数c是否为数字,您可能会问:isdigit函数的参数是int c,是...原创 2020-04-22 17:34:17 · 27541 阅读 · 2 评论 -
C语言isalpha函数介绍、示例和实现
文章目录1、包含头文件2、函数声明3、功能说明4、示例5、自定义的isalpha函数的实现方法6、版权声明isalpha函数用于判断字符是否为字母(a-z和A-Z)。在本文中,我们先来介绍isalpha函数的使用方法,然后编写一个自定义的_isalpha函数,实现与isalpha函数相同的功能。1、包含头文件#include <ctype.h>2、函数声明int isal...原创 2020-04-22 17:14:03 · 32497 阅读 · 2 评论 -
C语言转义字符介绍和示例
C语言中,字符需要转义的情况有两种:1)对于 ASCII编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,也无法从键盘输入;2)某些字符在C语言中有特别的用途,如单引号、双引号、反斜杠。C语言又定义了一种简单的书写方式,即转义字符的形式来表示。1、转义字符列表转义字符完整的列表如下:转义字符意义ASCII码值使用频率\n换行...原创 2020-04-22 15:46:07 · 3875 阅读 · 0 评论 -
C语言size_t类型
在C语言中,很多库参数的参数和返回值的数据类型是size_t,让很多初学都不理解。size_t不是C语言的关键字,也不是基本数据类型,而是C语言自定义的数据类型。例如以下库函数的声明:size_t strlen(const char *s);void *memset(void *s, int c, size_t n);char *strncpy(char *dest, const char...原创 2020-04-22 12:41:12 · 14945 阅读 · 0 评论 -
C语言将字符串反转
1、C语言源代码/* * 程序名:book.c,此程序演示将字符串反转。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525。*/#include <stdio.h>#include <string.h>// 将字符串反转,src为原字符串,dst存放反转结果。void strrev(const char *src,cha...原创 2020-04-21 13:19:41 · 7397 阅读 · 0 评论 -
C语言求1到100的和
1、C语言源代码/* * 程序名:book.c,此程序演示求1到100的和。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525。*/#include "stdio.h"void main(){ int i=0; // 用于1到100循环的计数器。 int sum=0; // 用于存放累计的和。 // 循环从1到100,把全部的值...原创 2020-04-21 12:10:11 · 37997 阅读 · 1 评论 -
C语言输出九九乘法表
1、C语言源代码/* * 程序名:book.c,此程序演示输出九九乘法表的输出 * 作者:C语言技术网(www.freecplus.net) 日期:20190525。*/#include "stdio.h"void main(){ int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { p...原创 2020-04-21 11:51:28 · 1478 阅读 · 0 评论 -
C语言关系运算符介绍和示例
1、关系运算符介绍关系运算(Relational Operators),用于判断条件,决定程序的流程。关系数学中的表示C语言的表示小于<<小于等于≤<=大于>>大于等于≥>=等于===不等于≠!=C语言的基本数据类型有char、int、double,我们暂时认为只有char和i...原创 2020-04-21 09:36:57 · 17277 阅读 · 9 评论 -
C语言运算符优先级
1、运算符的优先级这篇文章可能会让您失望。记得小学的时候就知道±*/四则运算符中,*/的优先级高于±。在C语言中,有以下运算符:1)算术运算符;2)赋值运算符;3)sizeof运算符;4)关系运算符;5)逻辑运算符;6)位运算符。运算符都有优先级,我不想介绍它们的优先级,我写了二十年的程序,也记不住各种运算符的优先级的关系,也从没打算过记住它们。我不建议程序员记住各种运算符的...原创 2020-04-20 20:29:48 · 948 阅读 · 0 评论 -
C语言赋值运算符介绍和示例
1、赋值运算符下表列出了 C 语言支持的赋值运算符:运算符描述实例=简单的赋值运算符,把右边操作数的值赋给左边操作数C = A + B 将把 A + B 的值赋给 C+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数C += A 相当于 C = C + A-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数C -=...原创 2020-04-20 20:19:07 · 34176 阅读 · 24 评论 -
C语言算术运算符介绍和示例
1、算术运算符下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 18,变量 B 的值为5,则:运算符描述实例+两个数相加A+B 将得到 23-一个数减另一个数A-B 将得到 13*两个数相乘A*B 将得到 90/分子除以分母A/B 将得到 3.6%余数运算符,整除后的余数B%A 将得到 3++自增运算符,...原创 2020-04-19 16:03:34 · 18092 阅读 · 5 评论 -
C语言二进制与十进制互相转换的方法和示例
文章目录1、十进制转二进制字符串的思路2、二进制字符串转十进制的思路3、示例代码4、版权声明在实际开发中,我们可以用0和1的字符串来表达信息,例如某设备有八个传感器,每个传感器的状态用1表示正常,用0表示故障,用一个二进制的字符串表示它们如01111011,用一个字符或整数表示它就是123。1、十进制转二进制字符串的思路1)把十进数除以2,记下余数(余数保存在字符串中),现用商除以2,再记下...原创 2020-04-19 13:28:14 · 14458 阅读 · 4 评论 -
C语言把二进制转换为十进制数的方法和示例
在实际开发中,我们可能会用0和1的字符串来表达信息,例如某设备有八个传感器,每个传感器的状态用1表示正常,用0表示故障,用一个二进制的字符串表示它们如01111011,也可以用一个字符或整数表示它即123。1、自定义的二进制字符串转十进制bintodec思路:把二进制字符串从最高位(左边第一位)开始用商乘以2再加余数(该位的数字),如此循环,左边第一位的商肯定是0。例如1111011转化成十...原创 2020-04-19 12:46:13 · 24123 阅读 · 3 评论 -
C语言把十进制转换为二进制数的方法和示例
C语言中,整数都是以二进制的形式存放在内存中,所谓的二进制、八进制、十进制和十六进制只是输出显示方式的不同。下表是各种进制整数的输出格式。细心的读者可能会发现,上表中没有二进制的输出格式,不能使用 printf函数输出二进制数。您可以编写函数把其它进制数字转换成二进制数字,并保存在字符串中,然后在printf 函数中使用%s输出。1、自定义的二进制输出函数dectobin思路:1)把十...原创 2020-04-18 22:46:34 · 28523 阅读 · 1 评论 -
C语言二进制、八进制、十六进制整数书写和输出
文章目录一、二进制、八进制、十六进制整数的书写1、二进制2、八进制3、十六进制4、需要注意的坑二、二进制、八进制、十六进制整数的输出四、版权声明整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言用int关键字来定义整数变量(int 是 integer 的简写)。在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。signed:有符号的,可以表...原创 2020-04-18 19:35:52 · 35652 阅读 · 3 评论 -
C语言abs和labs函数详解和示例
C语言提供了一系列函数获取整数的绝对值:abs、labs、llabs。1、包含头文件#include <stdlib.h>2、函数声明int abs(int j);long int labs(long int j);long long int llabs(long long int j);3、功能说明abs:获取整数(int类型)的绝值。labs:获取长整数(lo...原创 2020-04-18 15:31:37 · 11638 阅读 · 0 评论 -
C语言rand函数生成随机数详解和示例
在C/C++程序开发中,会经常用到随机数这个功能,例如编写游戏类(纸牌)的程序时就需要用到随机数。1、生成随机数在C语言中,我们使用 <stdlib.h> 头文件中的 srand和rand 函数来生成随机数。void srand(unsigned int seed); // 随机数生成器的初始化函数int rand(); //...原创 2020-04-17 12:28:38 · 18025 阅读 · 0 评论 -
C语言整数的输出
一、整数的基本概念整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言用int关键字来定义整数变量(int是 integer 的简写)。在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。signed:有符号的,可以表示正数和负数。unsigned:无符号的,只能表示正数,例如数组的下标、人的身高等。short:短的,现在主流的64位操作系...原创 2020-04-17 12:21:53 · 10282 阅读 · 0 评论 -
C语言for循环和while循环的区别
文章目录1、for循环介绍2、while循环介绍3、循环的选择4、版权声明1、for循环介绍for循环的一般形式为: for (语句1;表达式;语句2) { 语句块 }1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。2)接着判断表达式的条件,如果条件成立,就执行一次循环体中的语句块。3)语句块执行完后,接下来会执行语句2。4)重复第2)...原创 2020-04-16 11:09:16 · 23944 阅读 · 0 评论 -
C语言for循环
1、for循环介绍for循环的一般形式为: for (语句1;表达式;语句2) { 语句块 }1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。2)接着判断表达式的条件,如果条件成立,就执行一次循环体中的语句块。3)语句块执行完后,接下来会执行语句2。4)重复第2)步和第3),直到表达式的条件不成立才结束for循环。注意:1)在for循...原创 2020-04-16 11:04:54 · 36865 阅读 · 7 评论 -
C语言while循环
文章目录1、while循环介绍2、循环的跳转3、while循环的应用4、do while循环5、版权声明1、while循环介绍while循环的一般形式为: while (表达式) { 语句块 }意思是,先计算表达式的值,当值为真时(非0即是真),执行语句块,执行完语句块后,回到循环首部再次计算表达式的值,如果为真,又执行一次语句块……,这个过程会一直重复,直到表达式的值...原创 2020-04-16 11:00:34 · 5537 阅读 · 7 评论 -
C语言三目运算符
1、三目运算符三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。语法: 表达式1?表达式2:表达式3;语义:先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。 int a,b,c; a=7; b=6; c=(a>b)?a...原创 2020-04-15 12:36:31 · 31580 阅读 · 4 评论 -
C语言i++和++i的区别和用法
C语言中++是自增运算符,表示操作数自增1;–是自减运算符,表示操作数自减1。本文以自增运算符++为例来介绍它们的用法。自增运算符++有两种写法:1)++书写在变量之后,如: int i=10; i++;2)++书写在变量之前,如: int i=10; ++i;++运算符书写在变量之后和在变量之前有区别吗?有,看应用的场景。1、用于独立的语句中在一个独立的语句中...原创 2020-04-15 11:37:38 · 21915 阅读 · 3 评论 -
C语言const的用法
1、const的用法const是constant的缩写,意思是“恒定不变的”,它是定义只读变量的关键字。用const定义只读变量的方法很简单,就在定义变量时前面加const即可,如: const double pi = 3.1415926;用const定义的变量的值是不允许改变的,不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋...原创 2020-04-14 16:04:59 · 13220 阅读 · 0 评论 -
C语言的关键字
文章目录1、C89标准2、C99标准3、C11标准4、版权声明关键字也称为保留字,C89标准有32个,这些单词在C语言中有特别的含义,程序员不能把它用于变量或函数的命名。1、C89标准 auto:声明自动变量。 break:跳出当前循环。 case:开关语句分支。 char:声明字符型变量或函数返回值类型。 const:声明只读变量。 continue:结束当前循环,开...原创 2020-04-14 13:24:25 · 571 阅读 · 1 评论 -
C语言atoi和atol函数详解和示例
文章目录1、包含头文件2、函数声明3、功能说明4、示例5、其它说明6、版权声明C语言提供了一系列函数把字符串转换为整数:atoi、atol、atoll和atoq。1、包含头文件#include <stdlib.h>2、函数声明int atoi(const char *nptr);long atol(const char *nptr);long long atoll(co...原创 2020-04-13 23:03:30 · 5807 阅读 · 0 评论 -
C语言整数的取值范围
整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写)。在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。signed:有符号的,可以表示正数和负数。unsigned:无符号的,只能表示正数,例如数组的下标、人的身高等。short:短的,现在主流的64位操作系统下,整数占用内存...原创 2020-04-12 16:09:02 · 10132 阅读 · 1 评论 -
C语言scanf函数详解和示例
一、数据输入编写程序的主要目的就是为了处理数据。数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据、从数据库中读取数据、从网页中抓取数据等,还有一种原始的方式就是从键盘输入数据。在C语言中,有三个函数可以从键盘获得用户输入。getchar:输入单个字符,保存到字符变量中。gets:输入一行数据,保存到字符串变量中。scanf:格式化输入函数,一次可以输入多个数据,保存到多个变量...原创 2020-04-11 16:04:56 · 3314 阅读 · 0 评论