程序设计竞赛――C++常用库函数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

转自:首先就是memcpy表头文件:#includestring.h定义函数:void*memcpy(void*dest,constvoid*src,size_tn)函数说明:memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束返回值:返回指向dest的指针附加说明:指针src和dest所指的内存区域不可重叠例如:你需要复制串str=“wangyucao1989”中的“yucao”,那么可以这么写:memcpy(newstr,str+4,5);除了memcpy之外,string还提供了strncpy函数:函数名称:strncpy函数原型:char*strncpy(char*dest,constchar*src,intcount)函数功能:将字符串src中的count个字符拷贝到字符串dest中去函数返回:指向dest的指针参数说明:dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文档:string.h还是上面的例子,这个程序可以这样写:#includestdio.h#includestring.hintmain(){charstr[]=wangyucao1989;charnewstr[6];//memcpy(newstr,str+4,5);strncpy(newstr,str+4,5);newstr[5]='\0';printf(%s\n,newstr);return0;}========================================================位运算:运算方法有六种:&与运算|或运算^异或运算~非运算(求补)右移运算左移运算运用这些基本的运算,我们可以解决acm所需的各种运算,给Bit赋1,赋0,给他的值取反,还有好多段操作。如下:功能|示例|位运算-----------------+---------------------+--------------------去掉最后一位|(101101-10110)|x1在最后加一个0|(101101-1011010)|x1在最后加一个1|(101101-1011011)|x1+1把最后一位变成1|(101100-101101)|x|1把最后一位变成0|(101101-101100)|x|1-1最后一位取反|(101101-101100)|x^1把右数第k位变成1|(101001-101101,k=3)|x|(1(k-1))把右数第k位变成0|(101101-101001,k=3)|x&~(1(k-1))右数第k位取反|(101001-101101,k=3)|x^(1(k-1))取末三位|(1101101-101)|x&7取末k位|(1101101-1101,k=5)|x&((1k)-1)取右数第k位|(1101101-1,k=4)|x(k-1)&1把末k位变成1|(101001-101111,k=4)|x|(1k-1)末k位取反|(101001-100110,k=4)|x^(1k-1)把右边连续的1变成0|(100101111-100100000)|x&(x+1)把右起第一个0变成1|(100101111-100111111)|x|(x+1)把右边连续的0变成1|(11011000-11011111)|x|(x-1)取右边连续的1|(100101111-1111)|(x^(x+1))1去掉右起第一个1的左边|(100101000-1000)|x&(x^(x-1))判断奇数(x&1)==1判断偶数(x&1)==0取右边第一个1所在位置x&-x================================================================类型转换:函数名:abs功能:求整数的绝对值用法:intabs(inti);程序例:#includestdio.h#includemath.hintmain(void){intnumber=-1234;printf(number:%dabsolutevalue:%d\n,number,abs(number));return0;}函数名:atof功能:把字符串转换成浮点数用法:doubleatof(constchar*nptr);程序例:#includestdlib.h#includestdio.hintmain(void){floatf;char*str=12345.67;f=atof(str);printf(string=%sfloat=%f\n,str,f);return0;}函数名:atoi功能:把字符串转换成长整型数用法:intatoi(constchar*nptr);程序例:#includestdlib.h#includestdio.hintmain(void){intn;char*str=12345.67;n=atoi(str);printf(string=%sinteger=%d\n,str,n);return0;}函数名:atol功能:把字符串转换成长整型数用法:longatol(constchar*nptr);程序例:#includestdlib.h#includestdio.hintmain(void){longl;char*str=98765432;l=atol(lstr);printf(string=%sinteger=%ld\n,str,l);return(0);}===========================================================其他函数:函数名:bsearch功能:二分法搜索用法:void*bsearch(constvoid*key,constvoid*base,size_t*nelem,size_twidth,int(*fcmp)(constvoid*,const*));程序例:#includestdlib.h#includestdio.h#defineNELEMS(arr)(sizeof(arr)/sizeof(arr[0]))intnumarray[]={123,145,512,627,800,933};intnumeric(constint*p1,constint*p2){return(*p1-*p2);}intlookup(intkey){int*itemptr;/*Thecastof(int(*)(constvoid*,constvoid*))isneededtoavoidatypemismatcherroratcompiletime*/itemptr=bsearch(&key,numarray,NELEMS(numarray),sizeof(int),(int(*)(constvoid*,constvoid*))numeric);return(itemptr!=NULL);}intmain(void){if(lookup(512))printf(512isinthetable.\n);elseprintf(512isn'tinthetable.\n);return0;}函数名:fabs功能:返回浮点数的绝对值用法:doublefabs(doublex);程序例:#includestdio.h#includemath.hintmain(void){floatnumber=-1234.0;printf(number:%fabsolutevalue:%f\n,number,fabs(number));return0;}函数名:fcvt功能:把一个浮点数转换为字符串用法:char*fcvt(doublevalue,intndigit,int*decpt,int*sign);程序例:#includestdlib.h#includestdio.h#includeconio.hintmain(void){char*string;doublevalue;intdec,sign;intndig=10;clrscr();value=9.876;string=ecvt(value,ndig,&dec,&sign);printf(string=%sdec=%d\sign=%d\n,string,dec,sign);value=-123.45;ndig=15;string=ecvt(value,ndig,&dec,&sign);printf(string=%sdec=%dsign=%d\n,string,dec,sign);value=0.6789e5;/*scientificnotation*/ndig=5;string=ecvt(value,ndig,&dec,&sign);printf(string=%sdec=%d\sign=%d\n,string,dec,sign);return0;}函数名:gcvt功能:把浮点数转换成字符串用法:char*gcvt(doublevalue,intndigit,char*buf);程序例:#includestdlib.h#includestdio.hintmain(void){charstr[25];doublenum;intsig=5;/*significantdigits*//*aregularnumber*/num=9.876;gcvt(num,sig,str);printf(string=%s\n,str);/*anegativenumber*/num=-123.4567;gcvt(num,sig,str);printf(string=%s\n,str);/*scientificnotation*/num=0.678e5;gcvt(num,sig,str);printf(string=%s\n,str);return(0);}函数名:itoa功能:把一整数转换为字符串用法:char*itoa(intvalue,char*string,intradix);程序例:#includestdlib.h#includestdio.hintmain(void){intnumber=12345;charstring[25];itoa(number,string,10);printf(integer=%dstring=%s\n,number,string);return0;}函数名:labs功能:取长整型绝对值用法:longlabs(longn);程序例:#includestdio.h#includemath.hintmain(void){longresult;longx=-12345678L;result=labs(x);printf(number:%ldabsvalue:%ld\n,x,result);return0;}函数名:memcpy功能:从源source中拷贝n个字节到目标destin中用法:void*memcpy(void*destin,void*source,unsignedn);程序例:#includestdio.h#includestring.hintmain(void){charsrc[]=******************************;chardest[]=abcdefghijlkmnopqrstuvwxyz0123456709;char*ptr;printf(destinationbeforememcpy:%s\n,dest);ptr=memcpy(dest,src,strlen(sr

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功