字符串_笔记

字符串以NUL字节结尾,字符串长度不包括NUL字节

头文件string.h包含了字符串函数需要的原型和声明


不受长度限制字符串函数:

1、复制字符串

char *strcpy(char *dst, char const *src);    返回目标字符数组指针

2、连接字符串

char *strcat(char *dst, char const *src);    返回目标字符数组指针

3、字符串比较

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

若s1<s2,返回负值;

若s1>s2,返回正值;

若s1=s2,返回0;


长度受限的字符串函数:

接收长度参数用于限定复制或比较的字符数,可以防止内存溢出

char *strncpy(char *dst, char const *src, size_t len); 

如果src数组长度小于len,dst数组就用额外的NUL字节填充到len长度

如果src数组长度大于或等于len,那么只有len个字符被复制到dst,注意,它的结果将不会以NUL结尾

char *strncat(char *dst, char const *src, size_t len); 

int strncmp(char const *s1, char const *s2, size_t len);


在使用不受限制的函数之前,必须确定字符串实际上是以NUL结尾的。

char buffer[BSIZE];
...
strncpy(buffer, name , BSIZE);
buffer[BSIZE - 1] = '\0';
加入name太长,此赋值语句可以保证buffer的字符串是以NUL结尾的。


字符查找:

char *strchr( char const *str, int ch );
char *strrchr( char const *str, int ch );

参数:ch:需要查找的字符值

返回:若不存在,返回NULL

若存在,strchr返回第一个指向该位置的指针, strrchr返回最后一个指向该位置的指针

char string[] = "hello world";
char *ans;<pre name="code" class="cpp">
ans = strchr(string, 'h');

 

查找字符串中最先出现的字符位置

char *strpbrk(char const *str, char const * group);

char string[] = "hello world";
char *ans;

ans = strpbrk(string, “rld”);


查找子串

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


忽略大小写比较字符串

int strncasecmp(const char *s1,const char *s2,size_t n);


复制字符串

char * strdup( const char *s);

函数说明:strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。

返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL表示内存不足。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值