string.h中的一些字符串函数。
1. 字符串长度
原型:size_t strlen ( char const *string );
功能:返回字符串中包含的字符个数。
2.复制字符串
原型:char *strcpy ( char *dst, char const *src );
功能:这个函数把参数src字符串复制到dst参数。如果参数src和dst在内存中出现重叠,其结果是未定义的。
3.复制字符串(长度受限制)
原型:char *strncpy ( char *dst, char const *src, size_t len );
功能:功能同上一个函数。只是在复制的时候它总是正好想dst写入len个字符。如果strlen( src )的值小于len,dst数组就用额外的'\0'填充到了len长度。如果strlen( src )的值大于或等于len,那么只有len个字符被复制到dst中。注意!它的结果将不会以'\0'结尾。
4.连接字符串
原型:char *strcat ( char *dst, char const *src );
功能:这个函数吧参数src字符串添加到dst字符串的末尾
5.连接字符串(长度受限制)
原型:char *strncat ( char *dst, char const *src, size_t len );
功能:功能同上一个函数。它从src中最多复制len个字符到目标数组的后面。但是它总是在结尾字符串后面添加'\0'。它不管目标参数留下的空间够不够。
6.字符串比较
原型:int strcmp ( char const *s1, char const *s2 );
功能:如果s1小于s2,strcmp函数返回一个小于零的值。如果s1大于s2,函数返回一个大于零的值。如果两个字符串相等,函数返回零。
6.字符串比较 (长度受限制)
原型:int strncmp ( char const *s1, char const *s2, size_t len );
功能:功能同上一个函数。但它最多比较len个字节。
7.查找一个字符
原型:char *strchr ( char const *str, int ch );
原型:char *strrchr ( char const *str, int ch );
功能:strchr在字符串str中查找字符ch第一次出现的位置,找到后函数返回一个指向该位置的指针。如果该字符不存在于字符串中,函数就返回一个NULL指针。strrchr的功能和strchr基本一致,只是它所返回的是一个指向字符串中该字符的最后一次出现的位置(最右边那个)。
8.查找任何几个字符
原型:char *strpbrk ( char const *str, char const *group );
功能:这个函数返回一个只想str中第一个匹配group中任何一个字符的字符位置。如果未找到匹配,函数返回一个NULL指针。
9.查找一个子串
原型:char *strstr ( char const *s1, char const *s2 );
功能:这个函数在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,函数将返回一个NULL指针。如果s2是一个空字符串,函数就返回s1.
10.查找一个字符串前缀
原型:size_t strspn ( char const *str, char const *group );
原型:size_t strcspn ( char const *str, char const *group );
功能:strspn函数返回str起始部分匹配group中任意字符的字符数(str开头连续的属于group中的字符数量)。strcspn函数和strspn函数正好相反,它对str字符串起始部分中不与group中任何字符匹配的字符进行计数。
11.查找标记
原型:char *strtok ( char *str, char const *sep );
功能:strtok函数从字符串中隔离各个单独的称为标记(token)的部分,并丢弃分隔符。如果strtok函数的第一个参数不是NULL,函数就爱那个找到字符串的第一个标记。strtok同时将保存它在字符串中的位置。如果strtok函数的第一个参数是NULL,函数就在同一个字符串中从这个被保存的位置开始像前面一样查找下一个标记。如果字符串内不存在更多的标记,strtok函数就返回一个NULL指针。在典型的情况下,在第一次调用strtok时,向它传递一个指向字符串的指针。然后,这个函数被重复调用(第一个参数为NULL),直到它返回NULL为止。
12.错误信息
原型:char *strerror ( int error_number );
功能:当你调用一些函数,请求操作系统执行一些功能如打开文件时,如果出现错误,操作系统是通过设置一个外部的整型变量errno进行错误代码报告的。strerror函数把其中一个错误代码作为参数并返回一个指向用于描述错误的字符串的指针。
内存操作
void *memcpy ( void *dst, void const *src, size_t length );
void *memmove ( void *dst, void const *src, size_t length );
void *memcmp ( void const *a, void const *b, size_t length );
void *memchr ( void const *a, int ch, size_t length );
void *memset ( void *a, int ch, size_t length );
这些函数能够处理任意的字节序列。