C语言便捷函数

stdlib.h

1,快速排序函数qsort:

void qsort(void* base,int nelem,unsigned int width,int (*pfCompare)(const void *,const void *))

可以对任何类型的一维数组排序,base是待排序数组的指针,nelem是待排序元素的个数,width是待排序元素的大小(以字节为单位),pfCompare是“比较函数”的指针,比较函数第一个元素排在前返回负整数,第二个元素排在前返回正整数,无所谓谁排在前返回0。

示例:

int sticks[64];
int compare(const void* a,const void* b)
{
    return *(int*)b - *(int*)a;
}

qsort(sticks,64,sizeof(int),compare);


2,二分查找函数bsearch:

void *bsearch(const void *key, const void *base, size_t nelem, size_t width, int(*fcmp)(const void *, const void *))

参数:key:要查找的关键字的指针。base:要查找的数组。nelem:被查找数组中的元素数量。width:每个元素的长度(以字节为单位)。fcmp:指向比较函数的指针。
功能: 函数用折半查找法在从数组元素buf[0]到buf[num-1] 匹配参数key。如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。数组buf 中的元素应以升序排列。函数bsearch()的返回值是指向匹配项,如果没有发现匹配项,返回NULL



string.h

1,内存设置函数memset

void * memset(void * s,int c,int n)

将内存地址s开始的n个字节全部设置为c。

示例:

int used[64];

memset(used,0,sizeof(used));


2,不区分大小写字符串比较函数stricmp

int  stricmp( const char *string1, const char *string2 )

前减后,linux下具有相同功能的函数是strcasecmp,包含在头文件strings.h下。


3,子串复制函数strncpy

char *strncpy(char *dest, const char *src, int n)

把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。


4,寻找字串函数strstr

char *strstr(char *str1, const char *str2)

判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

 

5,字符查找函数strchr

char *strchr(const char* _Str,char _Val)

查找字符串_Str中首次出现字符_Val的位置,返回首次出现_Val的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果Str中不存在Val则返回NULL。


6,内存复制函数memcpy

void *memcpy(void *dest, const void *src, size_t n)

从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中


7,字符串比较函数strcmp

extern int strcmp(const char *s1,const char *s2)

若str1==str2,则返回零;
若str1 若str1>str2,则返回正数。






math.h

1,开平方函数sqrt

double sqrt(double)


你可能感兴趣的:(C语言)