C语言中--字符串相关--的重要函数

strcat

原型:extern char *strcat(char *dest,char *src);

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回dest的指针。

strstr

函数原型:extern char *strstr(char *str1, char *str2);

  功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
  返回值:返回该位置的指针,如找不到,返回空指针。

strcmp,strncmp

原型:extern int strcmp(const char *s1,const char * s2);

功能:比较字符串s1和s2。

一般形式:strcmp(字符串1,字符串2)

  说明:
  当s1<s2时,返回值<0
  当s1=s2时,返回值=0
  当s1>s2时,返回值>0

strcasecmp

定义函数 int strcasecmp(const char *s1, const char *s2);

函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异

strcpy,strncpy

原型声明:extern char *strcpy(char *dest,const char *src);

功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

strdup

原型:extern char *strdup(char *s);

功能:复制字符串s

说明:strdup()在内部调用了malloc()为变量分配内存,当程序结束后,必须用free()释放相应的内存空间,否则会造成内存泄漏

strchr

原型:extern char *strchr(constchar *s,char c);

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

返回值:Returns the address of the first occurrence ofthe character in the string if successful, or NULL otherwis

strrchr

char *strrchr(char *str, char c);

函数的作用是:查找一个字符串在另一个字符串中末次出现的位置,并返回从字符串中的这个位置起, 一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。

strsep

原型:char*strsep(char **stringp, const char *delim); 

功能:分解字符串为一组字符串。从stringp指向的位置起向后扫描,遇到delim指向位置的字符后,将此字符替换为NULL,返回stringp指向的地址。

strspn

定义函数 size_t strspn(const char *s,const char * accept);

函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。

返回值 :返回字符串s开头连续包含字符串accept内的字符数目。

strtok

char *strtok(char *s,const char *delim); 

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 

strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。

返回值:

从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

  所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。


memset

void *memset(void *s, int c, size_t n);

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。

一定要记住如果要把一个char a[20]清零,一定是 memset(a, 0, 20)

memcpy

void *memcpy(void*dest, const void *src, size_t n);

src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。

函数返回一个指向dest的指针。


malloc 和calloc

函数malloc()calloc()都可以用来动态分配内存空间,但两者稍有区别。
malloc()函数有一个参数,即要分配的内存空间的大小:
void *malloc(size_t size);
calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。
void *calloc(size_t numElements,size_t sizeOfElement);
如果调用成功,函数malloc()和函数calloc()都将返回所分配的内存空间的首地址。
函数malloc()和函数calloc()的主要区别是前者不能初始化所分配的内存空间,而后者能。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值