处理字符串:string.h

string.h库定义了size_t类型和空指针要使用的NULL宏。string.h头文件提供了一些分析和操控字符串的函数,其中一些函数以更通用的方式处理内存。下面列出了一些函数

void *memchr (const void *s,int c,size_ t n) ;

在s指向对象的前n个字符中查找是否有c。如果找到,则返
回首次出现c处的指针,如果未找到则返回NULL

int memcmp (const void*sl, const void*s2,size_ t n) ;

比较s1指向对象中的前n个字符和s2指向对象的前n个字符,每个值都解释为unsigned char类型。如果n个字符都匹配,则两个对象完全相同:否则,比较两个对象中首次不匹配的字符对。如果两个对象相同,函数返回0;如果在数值上第1个对象小于第2个对象,函数返回小于0的值:如果在数值上第1个对象大于第2个对象,函数返回大于0的值

void *memcpy(void *restrict sl, const void * restrict s2,size_ t n) ;

把s2所指向位置上的n字节拷贝到s1指向的位置上,函数
返回s1的值。如果两个位置出现重叠,其行为是未定义的

void *memmove (void*s1, const void*s2,size_ t n) ;

把s2所指向位置上的n字节拷贝到s1指向的位置上,其行为与拷贝类似,返回s1的值。但是,如果出现局部重叠情况,该函数会先把重叠的内容拷贝至临时位置

void *memset (void *s, int v, size_ t n) ;

把v的值(转换为unsigned char)拷贝至s指向的前n字节中,函数返回s

char *strcat (char *restrict s1, const char * restrict s2) ;

把s2指向的字符串拷贝到s1指向字符串后面,s2字符串的第1个字符覆盖s1字符串的空字符。该函数返回s1

char *strncat (char *restrict s1,const char * restrict s2,size_ t n) ;

把s2指向字符串的n个字符拷贝到s1指向的字符串后面(或拷贝到s2的空字符为止)。s2字符串的第1个字符覆盖s1字符串的空字符。函数返回s1

char *strcpy(char *restrict s1, const char * restrict s2) ;

把s2指向的字符串拷贝到s1指向的位置。函数返回s1

char *strncpy(char *restrict s1,const char * restrict s2,size_t n);

把s2指向字符事的n个字符拷贝到s1指向的位置(或拷贝到s2的空字符为止)。如果在拷贝n个字符之前遇到空字符,则在拷贝字符后面添加若干个空字符,使其长度为n;如果拷贝n个字符没有遇到空字符,则不添加空字符。函数返回s1

int strcmp(const char*sl, const char *s2) ;

比较sl和s2指向的两个字符串。如果完全匹配,则两字符串相同,否则比较首次出现不匹配的字符对。通过字符编码值比较字符。如果两个字符串相同,函数返回0:如果第1个字符串小于第2个字符串,函数返回小于0的值:如果第1个字符串大于第2个字符串,函数返回大于0的值

int strcoll(const char *sl, const char *s2) ;

与strcmp() 类似,但是该函数使用当前本地化的LC_ COLLATE类别(由setlocale()函数设置)所指定的排
序方式进行比较

int strncmp (const char *s1, const char *s2, size_ t n) ;

比较s1和s2指向数组中的前n个字符,或比较到第1个空字符位置。如果所有的字符对都匹配,则两个数组相同否则比较两个数组中首次不匹配的字符对。通过字符编码值比较字符。如果两个数组相同,函数返回0:如果第1个数组小于第2个数组,函数返回小于0的值:如果第1个数组大于第2个数组,函数返回大于0的值

size_ t strxfrm(char*restrict s1,const char * restrict s2,size t n);
转换s2中的字符串,并把转换后的前n个字符(包括空字符)拷贝到s1指向的数组中。用stremp ()比较转换后的两个字符串的结果和用strcoll()比较两个未转换字符串的结果相同。函数返回转换后的字符串长度(不包括末尾的空字符)

char *strchr(const char *s, int c);

查找s指向的字符串中首次出现c的位置。空字符是字符串的一部分。函数返回一个指针,指向首次出现c的位置。如果没有找到指定的c则返回NULL

size_ t strcspn(const char *s1, constchar*s2) ;

返回s1中未出现s2中任何字符的最大起始段长度

char *strpbrk(const char *s1, const char*s2) ;

返回一个指针,指向s1中与s2任意字符匹配的第1个字符的位置。如果未发现任何匹配的字符,函数返回NULL

char *strrchr(const char *S, int c);
在s指向的字符串中查找末次出现c的位置(即从s2右侧开始查找宇符c首次出现的位置)。空字符是字符串的一部分。如果找到,函数返回指向该位置的指针;如果未找到,则返回NULL

size t strspn(const char *s1, const char*s2) ;

返回s1中包含s2所有字符的最大起始段长度

char *strstr (const char *s1, const char*s2) ;

返回一个指针,指向s1中首次出现s2中字符序列(不包括结束的空字符)的位置。如果未找到,函数返回NULL

char *strtok(char *restrict s1, const char * restrict s2) ;
该函数把s1字符串分解为单独的记号。s2字符串包含了作为记号分隔符的字符。按顺序调用该函数。第1次调用时,s1应指向待分解的字符串。函数定位到非分隔符后的第1个记号分隔符,并用空字符替换它。函数返回一个指针,指向储存第1个记号的字符串。如果未找到记号,函数返回NULL.在此次调用strtok()查找字符串中的更多记号。每次调用都返回指向下一个记号的指针,如果未找到则返回NULL

char * strerror (int errnum) ;

返回一个指针,指向与储存在errnum中的错误号相对应的错误信息字符串(依实现而异)

int strlen(const char* s);

返回字符串s中的字符数(末尾的空字除外)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值