标准库函数由15个头文件组成

1.math.h

1.1 绝对值函数



1.2 幂函数、开平方函数



1.3 指数函数、对数函数



1.5 三角函数





注意参数范围:



1.6 取整函数、取余函数

2.字符串处理函数

2.1 字符串长度函数

int strlen(char *d)

功能:返回字符串d的长度,不包括终止符NULL

2.2 字符串连接函数

char *strcat(char *d,char *s)

功能:连接字符串s到字符串d,返回字符串d

char *strncat(char *d,char *s,int n)

功能:连接字符串s中至多n个字符到字符串d,返回字符串d

2.3 字符串复制函数

char *strcpy(char *d,char *s)

功能:复制字符串s到字符串d,返回字符串d

char *strncpy(char *d,char *s,int n)

功能:复制字符串s中至多n个字符串d;如果s小于n个字符,用"\0"补上,返回字符串d

void *memcpy(void *d,void *s,int n)

功能:从s复制n个字符到d,返回字符串d

void *memmove(void *d,void *s,int n)

功能:和memcpy相同,即使d和s相同也运行

2.4 字符串比较函数‘

int strcmp(char *d,char *s)

功能:比较字符串d与字符串s。如果d<s,返回-1;如果d==s,返回0;如果d>s,返回1

int strncmp(char *d,char *s,int n)

功能:比较字符串d中至多n个字符与字符串s。如果d<s,返回-1;如果d==s,返回0;如果d>s,返回1

int memcmp(void *d,void *s,int n)

功能:比较d的首先n个字符与s,和strcmp返回值相同

2.6 字符串查找函数

char *strchr(char *d,char c)

功能:返回一个指向字符串d中c第1次出现的指针;或者如果没有找到c,则返回指向NULL的指针

char *strchr(char *d,char c)

功能:返回一个指向字符串d中c第1次出现的指针;或者如果没有找到c,则返回指向NULL的指针

char *strstr(vhar *d,char *s)

功能:返回一个指向字符串d中字符s第1次出现的指针;或者如果没有找到s,则返回指向NULL的指针

void *memchr(void *d,char c,int n)

功能:返回一个指向被d所指向的n个字符中c第1次出现的指针;或者如果没有找到c,则返回指向NULL的指针

2.7 字符串填充函数

void *memset(void *d,char c,int n)

功能:使用n个字符c填充void*类型变量d

3 字符处理函数

#include <ctype.h>

3.1 字符类型判断函数

3.2 字符大小写转换函数

int tolower(int c)

功能:转换整数c为小写字母。当c为大写英文字母时,则返回对应的小写字母,否则返回原来的值

int toupper(int c)

功能:转换整数c为大写字母。当c为小写英文字母时,则返回对应的大写字母,否则返回原来的值

4 转换和存储管理函数

#include <stdlib.h>

4.1 转换函数

4.2 存储管理函数

5 随机函数

5.1 找到真正的随机数字是困难的。伪随机数,单词产生的数列是无法预测的,但是每次都会生成同样的一组随机数列。

标准C函数库提供rand()函数,返回[0,MAX]之间均匀分布的伪随机数。rand()函数不接受参数,默认以1为种子(即起始值),它总是以相同的种子开始,所以形成的伪随机数列也相同,不是真正的随机。这是有意设计的,目的是为了便于程序的调试。

另一个函数时srand(),可以使用该函数指定不同的数(无符号整数)为种子。但如果种子相同,那么伪随机数列也相同。我们有两种方法可以采用,一种办法是让用户输入种子,但是效果不是很理想;另一种比较理想的方法是采用变化的数,我们常用时间来作为随机数生成器的种子。这样种子不同,产生的随机数也就不同。

5.2

例,使用rand()产生0-10的随机整数

int n = rand() % 11;

生成一个[a,b]范围内的一个随机整数,可以用下式表示

int n = a + rand() % (b - a + 1)

例,

#define MAX 100
int main(){
int i;
srand((unsigned)time(NULL));/*随机数播种函数*/
for(i = 0;i < 10;i++) /*产生10个随机数*/
printf("%d\n",rand()%MAX);/*设定随机数范围并输出*/
return 0;
}

srand()函数的参数是一个带NULL参数的time()函数。NULL参数使time()函数以秒为单位读取计算机内部时钟的时间,然后srand()函数使这个时间初始化,rand

()函数设定随机数范围,也就是常说的产生一个以当前时间开始的随机种子。

6 日期和时间处理函数

#include <time.h>

7 诊断函数

assert()函数,作用是测试一个表达式的值是否为false,也就是为0,并且在条件为false时终止程序,参数的表达式的结果是一个整型数据。

assert(a==b);

当a和b相等时,表达式的结果是1,等同于true;如果a和b不等,结果就是0,就是false,然后可根据结果决定是否终止程序。当程序出现异常时,可以使用abort()函数以非正常方式立即结束应用程序。

8 命令行参数

标准C语言允许主函数main()有或没有参数列表,可以在主函数main()中使用一个或多个参数,如:

int main(int argc,char *argv)

是main函数的通常写法,第1个参数,argc表示传递给主函数main()有多少个参数,第2个参数 argv[]以字符串数组的形式接收真正的参数。
main()函数本身是索引为0的参数,所以argc至少为1,。在控制台环境中,用户可以在程序路径和名称后面键入参数,将传递给argc[1]、argv[2]等。

//须在DOS下或者在编译器中设置命令行参数,才能运行上面的代码。

在cmd中输入程序的路径和参数,即可输出结果

9 其他函数

exit()结束函数 表示结束程序,它的返回值将被忽略。包含在<stdlib.h>头文件中。

原型 :

    void exit(int retval);

qsort()快速排序函数 根据给出的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍放在原数组中。包含在<stdlib.h>头文件中。

原型:

    void qsort(void *base,int n,int size,int(*fcmp)(const void *,const void *));

/*
**猜数字游戏
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <ctype.h> #define MAX 9 int main(){
int b = 0;
int n;/*猜的数字*/
int sum = 0;/*猜的次数*/
char array[100];
char *p = array;
int num;
srand((unsigned)time(NULL));/*随机数播种函数*/
num = 1 + rand()%MAX; /*设定随机数*/
printf("随机数已准备好,范围1到9.\n");
while(!b){ /*猜不到一直循环*/
if(sum >= 5){
printf("次数用完,答案是%d",num);
break;
}
sum += 1;
printf("输入你猜的数字\n");
scanf("%s",p);
if(strlen(p) == 1){
if(isalpha(*p) != 0){
printf("输入数字,不是字母\n");
}
else if(ispunct(*p) != 0){
printf("输入数字,不是标点符号\n");
}
else{
n = atoi(p);
if(n == num){
b = 1;
printf("恭喜!你猜了%d次\n",sum);
}
else if(n < num && n >= 0){
printf("猜小了\n");
}
else if(n > num && n <= 9){
printf("猜大了\n");
}
}
}
else{
printf("数字范围是1到9,输入的数据不对!\n");
}
}
return 0;
}

标准C库函数的更多相关文章

  1. 标准c库函数与Linux下系统函数库 区别 (即带不带缓冲区的学习)

    我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open().close().write().read()等,而标准C语言的库函数中也有一套对文件的操作函数fop ...

  2. C 标准IO 库函数与Unbuffered IO函数

    先来看看C标准I/O库函数是如何用系统调用实现的. fopen(3) 调用open(2)打开指定的文件,返回一个文件描述符(就是一个int 类型的编号),分配一 个FILE 结构体, 通常里面包含了: ...

  3. 《你必须知道的495个C语言问题》读书笔记之第11-14章:ANSI C标准、库函数、浮点数

    一.ANSI C标准 1. ANSI向C语言预处理器引入了几项新的功能,包括“字符串化”操作符(#).“符号粘贴”操作符(##).#pragma指令. 2. Q:char a[3] = "a ...

  4. stdio - 标准输入输出库函数

    SYNOPSIS 总览 #include <stdio.h> FILE *stdin; FILE *stdout; FILE *stderr; DESCRIPTION 描述 标注 I/O ...

  5. log4go的全局封装Wrapper和标准log库函数的兼容

    方便易用的全局函数 大多数时候,只不过是写一个简单的测试程序.例如: package main import ( "log" ) func main(){ log.Fatal(&q ...

  6. 标准c库函数和linux系统函数的关系

    c库IO函数的工作流程 c库函数与系统函数的关系 虚拟地址空间 文件描述符

  7. 标准IO库函数复习

    打开文件,打开文件一定要成对写,养成好习惯很重要.比如 fopen()fclose<ol> <li>fopen()</li> <pre lang=" ...

  8. linux内核系统调用和标准C库函数的关系分析

    http://blog.csdn.net/skyflying2012/article/details/10044343

  9. C语言中最常用的标准库函数

    标准头文件包括: <asset.h>      <ctype.h>       <errno.h>       <float.h> <limits ...

随机推荐

  1. selected标签判断默认选中

    <select name="suggestedType" style="width:280px" > <option value=" ...

  2. sql优化学习(一)

    找到一套好的sql优化视频,地址如下: http://www.ppvke.com/10355.html p.s. 我在百度搜索半天都是些乱七八糟的东西,我用google搜索后,立刻就发现上面的视频地址 ...

  3. navicat连接oracle方法及其安装包

    Navicat破解版下载(安装好之后,点击执行最后一个破解文件即可) 链接: https://pan.baidu.com/s/1pMpVwfT 密码: vrt6 连接oracle还需要下载以下文件,o ...

  4. 解决winfrom下TextBox不支持透明背景色

    不知道微软扯什么拉鸡蛋子,居然有控件不支持透明,我实在想喷设计的人脑残.尤其可恨的是TextBox不支持,更可恨的是直到最新版.net4.6也不支持.源码又看不见,具体实现细节都不知道,谁能改得动?这 ...

  5. IBM MQ相关 ---- 系列文章

    原 IBM websphere MQ远程队列的简单配置 转 MQ7.5以后的权限问题解决 原 MQ--API总结 转 连接IBM MQ原因码报2035的错误解决办法 原 Java连接MQ的实例 转 通 ...

  6. 当 1117 遇到 MLCC 后

    当 1117 遇到 MLCC 后 AMS1117 很多人用过吧,但是当大容量的 MLCC 时会出现什么呢? 会出现问题,而且严重的问题,输出纹波会变大,会自激,会有声音出来. 这是很多工程师没有注意的 ...

  7. JavaScript数组的一些奇葩行为

    今天,复习了一下JavaScript的数组,然后,把他的一些奇葩行为总结了一下,在这里和大家share一下,如果有不对的地方,欢迎指出! 奇葩1:Array()构造器函数可以不使用new关键字进行调用 ...

  8. 一道Linux 面试题

    一个文本文件info.txt的内容如下:aa,201zz,502bb,1ee,42每行都是按照逗号分隔,其中第二列都是数字,请对该文件按照第二列数字从大到小排列 答案:cat info.txt|awk ...

  9. centos7 使用cgroup进行资源限制

    centos7中进行资源限制,使用的仍然是cgroup,只是配置接口使用的systemd. 下文将介绍如何使用systemd进行资源限制. Step1 编写unit文件 命令为my-demo.serv ...

  10. 【java】Hello World

    class Demo { //程序的主入口,能保证类的独立运行 public static void main(String[] args) { System.out.println("He ...