QQ172082520
gets(buf); i = 0;
while(isalnum(buf[i])) i++;
buf[i] = 0;
printf(\\\n\,buf); }
4.参 阅
toupper( ),tolower( ),toascii( )
3.25 KBHIT函数
1. 提 要 #include
main (void) {
int i;
while(!kbhit()) {
cputs(\;
for(i = 0 ; i != 1000 ; i++) continue; } }
4. 参 阅 getch( ),getche( ) 5. 返回值 如果有键被按下,函数将返回1;否则返回0。此外,返回值为1位。
注意:程序的主体需由用户实现,其主要框架可以从sources目录下直接获得。
3.26 LDEXP函数
1. 提 要
#include
double ldexp (double f,int i) 2. 描 述
55
QQ172082520
ldexp( )函数是frexp( )的反函数。它先进行浮点数 f 的指数部分与整数 i 的求和运算,然后返回合成结果。 3. 例 程 #include
main (void) {
double f;
f = ldexp(1.0,10);
printf(\,f); }
4. 参 阅 frexp( ) 5. 返回值 本函数返回浮点数 f 指数部分加上整数 i 后得到的新浮点数。
3.27 LDIV函数
1. 提 要 #include
ldiv_t ldiv (long number,long denom) 2. 描 述 ldiv( )函数实现分子除以分母,得到商和余数。商的符号与精确商的符号一致,绝对值是一个小于精确商绝对值的最大整数。 Ldiv( )函数与div( )函数类似;不同点在于,前者的函数参数和返回值(结构体ldiv_t)的成员都是长整型数据。 3.例 程
#include
main (void) {
ldiv_t lt;
lt = ldiv(1234567,12345);
printf(\,remainder = %ld\\n\,lt.quot,lt.rem); }
4.参 阅 div( ) 5.返回值 返回值是结构体ldiv_t。
56
QQ172082520
6.数据结构 typedef struct { long quot; /*商*/ long rem; /*余数*/ } ldiv_t;
3.28 LOCALTIME函数
1. 提 要 #include
struct tm * localtime (time_t * t) 2. 描 述 本函数把指针t所指的时间分解并且存于结构体中,精确度为秒。其中,t所指的时间必须自1970年1月1日0时0分0秒起,所用的结构体被定义在time.h文件中。localtime( )函数需要考虑全局整型变量time_zone中的内容,因为它包含有本地时区位于格林威治以西的时区数值。由于在MS-DOS环境下无法预先确定这个值,所以,在缺省的条件下,localtime( )函数的返回值将与gmtime( )的相同。 3.例 程 #include
\,\,\,\, \,\,\}; void
main (void) {
time_t clock; struct tm * tp; time(&clock);
tp = localtime(&clock);
printf(\,wday[tp->tm_wday]); }
4. 参 阅 ctime( ),asctime( ),time( ) 5. 返回值 本函数返回tm结构体型数据。
注意:由于编译器不会提供time( )程序,故它需要由用户给定。详情请参阅time( )函数。
6. 数据结构 typedef long time_t; struct tm {
57
QQ172082520
int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; };
3.29 LOG、LOG10函数
1. 提 要 #include
#include
main (void) {
double f;
for(f = 1.0;f <= 10.0;f += 1.0)
printf(\,f,log(f)); }
4. 参 阅 exp( ),pow( ) 5. 返回值 如果函数参数为负,返回值为0。
3.30 MEMCHR函数
1. 提 要 #include
/* 初级和中级系列单片机 */
const void * memchr (const void * block,int val,size_t length) /* 高级系列单片机*/
void * memchr (const void * block,int val,size_t length)
58
QQ172082520
2. 描 述 memchr( )函数与strchr( )函数在功能上类似;但前者没有在字符串中寻找null(空)中止字符的功能。memchr( )函数实现在一段规定了长度的内存区域中寻找特定的字节。它的函数参数包括指向被寻内存区域的指针、被寻字节的值和被寻内存区域的长度。函数将返回一个指针,该指针指向被寻内存区域中被寻字节首次出现的单元。 3. 例 程 #include
unsigned int ary[ ] = {1,5,0x6789,0x23}; void
main (void) {
char * cp;
cp = memchr(ary,0x89,sizeof ary); if(!cp)
printf(\; else
printf(\,cp - (char *)ary); }
4. 参 阅 strchr( ) 5. 返回值 函数返回指针。该指针指向被寻内存区域中被寻字节首次出现的单元;否则返回NULL。
3.31 MEMCMP函数
1. 提 要
#include
int memcmp (const void * s1, const void * s2, size_t n) 2. 描 述 memcmp()函数的功能是比较两块长度为 n 的内存中变量的大小,类似strncmp()函数返回一个有符号数。与strncmp()函数不同的是,memcmp()函数没有空格结束符。ASCII码字符顺序被用来比较;但如果内存块中包含非ASCII码字符,则返回值不确定。测试是否相等总是可靠的。 3. 例 程
#include
main (void) {
59