本节主要讲解之前没有用过的一些标准函数库。主要分为 整数函数、浮点型函数、日期和时间函数等。
这一章主要讲解整数函数。
整数函数:
整数函数的返回值为整型值,分为三类:算术、随机数和字符串转换。
算术:
标准函数库包含了4个整型算术函数—abs\labs\ div\ldiv
1. abs—求绝对值:
原型:int abs(int value);
函数说明:abs用来计算传入参数的绝对值,然后将结果返回。
用法:
int answer;
answer = abs(-12);//answer 返回为-12的绝对值,结果为12
2. labs—求绝对值:
原型:long int labs(long int value);
返回值:labs跟abs一样,用来计算绝对值,但是labs支持长度为long int类型,长度更长。
用法:
long result;
long x = -12345678L; //长度范围超过了int的最大范围
result= labs(x);
3.div—两个整数相除:
原型:div_t div(int numerator,int denominator);
返回值:返回商和余数
用法:
div_t q;
q = div(10,3);
printf("8 div 3 = %d, remainder = %d\n", q.quot,q.rem);
输出:
8 div 3 = 3, remainder = 1
4.ldiv—两个整数相除:
原型:ldiv_t ldiv(long int numer, long int denom);
返回值:返回商和余数
用法:
ldiv_t lx;
lx = ldiv(100000L, 30000L);
printf("100000 div 30000 = %ld remainder %ld\n", lx.quot, lx.rem);
输出:
100000 div 30000 = 3 remainder 10000
随机数:
在我们常用的一些加密、模拟操作的时候,需要用到随机数,这里有两个函数(rand\srand)合在一起使用能够产生伪随机数。
伪随机数:通过计算产生随机数,有可能重复,因此不是真正的随机数。
1. rand—产生随机数:
原型:int rand():
用法:
int number;
number = rand();
2.srand —提供随机数种子:
原型:void srand(unsigned int seed);
这里的seed是rand函数的种子,用来初始化rand()的初始值。
rand调用之前,需要用srand产生一个种子,如果没有用主动调用srand,系统也会默认使用srand(1)。
通常情况下,srand后面跟时间函数来完成随机种子生成,减少随机数相同的可能性。
srand((unsigned)time(NULL));
int a = rand();
字符串转换:
字符串转换函数把字符串转换成数值,常用的有atoi\atol.
1.atoi—字符串转成整数:
原型:int atoi(const char *nptr);
返回值:参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
示例:
int n;
char *str = "12345.67";
n = atoi(str); //n的值为12345
2.atol—字符串转成长整形:
原型:long atol(const char *nptr);
返回值:返回转换后的长整型数。如果传入的字符串为空,或者字符串包含的内容非阿拉伯数字序列,则函数返回默认值0。
示例:
long l;
char *str = "98765432";
l = atol(str); //l为98765432
閱讀更多 大貓玩程序 的文章