字符串和字符串函数的总结

一、求字符串长度

strlen

size_t strlen (const char *str)

二、长度不受限制的字符串函数

strcpy   (字符串拷贝 默认+'\0')

char *strcpy(char *dest,char *src)

strcmp (字符串比较,根据ascii码)

char *strcmp(char *dest,char *src)

strcat  (字符串拼接,覆盖前一个'\0')

char *strcat(char *dest,char *src)

三、长度受限的字符串函数

strncpy     (需要自己+'\0')

扫描二维码关注公众号,回复: 1669829 查看本文章

char *strncpy(char *dest,char *src,int num)

strncmp    

char *strncmp(char *dest,char *src,int num)

strncat     (默认+'\0')

char *strncat(char *dest,char *src,int num)

四、字符串查找

strchr   (查找字符串s中首次出现字符c的位置。)

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

strrchr(反向查)

strpbrk(第一个字符串中第一次出现在第二个字符串中的字符地址)

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

strstr(找子串)

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

五、高级字符串查找

1.strspn(str1字符串中开始部分匹配str2字符串中字符的个数)要为连续

size_t strspn (const char *str1,const char *str2)

2.strcspn(没出现的个数)

3.strtok(字符串分割)一次只会为两个

char *strtok(char *str,const char *sep)

sep参数是个字符串,定义了用作分隔符的字符集合

str参数为需要分割的字符串

一次只会分割成两个,前一部分为分割好的,后一部分还可以进行再一次分割

第一次调用的两个参数都必须写

第二次调用,第一个参数为NULL.那是因为里面有一个全局变量stack全局变量指针,这个指针不随函数调用完毕而释放,保存了位置,可以指向下一个位置

只要能够分割成功,就会返回分割子串的首地址,不成功,返回null

其实现的此函数的原理:就是定义两个指针,一个指向首地址,另一个向后面找,若遇见分隔符,即改为'\0',返回第一个指针即可。

若连出现多个字符串,即为空,无意义,所以此函数只返回有效字符串。

六、strerror(返回错误码所对应的错误信息)

头文件:#include<errno.h>

error:整形,全局变量(c库)0为成功,非0失败

七、字符分类函数

iscntrl:任何控制字符

isspace :空格字符

isdigit:十进制数0~9

isxdigit:十六进制数字

islower:小写字母

isupper:大写字母

isalpha:字母

isalnum:字母或数字

ispunct:标点符号

isgraph:任何图形字符

isprint:任何可打印字符

字符转化:

头文件:#include<ctype.h>

toupper:转小写

tolower:转大写

八、内存操作函数

1.memcpy

void *memcpy (void *dest ,void *src,int num)

未考虑内存重叠,遇到'\0'不会停下

2.memmove

void *memmove (void *dest,void *src ,int num)

考虑内存重叠

3.memcmp

int memcmp (const void *ptr1,const void *ptr2,int num)

4.memchr

void *memchr (const void* ,int ,size_t)

5.memset

void *memset(void *s, int ch,size_tn);

猜你喜欢

转载自blog.csdn.net/z_juan1/article/details/80422636