您的位置:首页 > 编程语言 > C语言/C++

[置顶] C语言便捷函数

2017-08-07 08:20 141 查看
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 *))


参数:[b]key:要查找的关键字的指针。base:要查找的数组。nelem:被查找数组中的元素数量。[b]width[/b]:每个元素的长度(以字节为单位)。fcmp:指向比较函数的指针。

功能: 函数用折半查找法在从数组元素buf[0]到buf[num-1] 匹配参数key。如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。数组buf 中的元素应以升序排列。函数bsearch()的返回值是指向匹配项,如果没有发现匹配项,返回NULL
[/b]

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<str2,则返回负数;

若str1>str2,则返回正数。

math.h

1,开平方函数sqrt

double sqrt(double)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: