当前位置:文档之家› 各种C语言字符串操作,str....

各种C语言字符串操作,str....

字符串操作strchr原型:char *strchr(const char* _Str,int _Val)char *strchr(char* _Str,int _Ch)头文件:#include <string.h>功能:查找字符串s中首次出现字符c的位置说明:返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。

返回值:成功则返回要查找字符第一次出现的位置,失败返回NULLstrcmp原型:extern int strcmp(const char *s1,const char *s2);C/C++函数,比较两个字符串设这两个字符串为str1,str2,若str1==str2,则返回零;若str1>str2,则返回正数;若str1<str2,则返回负数。

Strcoll原型:int strcoll(const char *s1, const char *s2);默认情况下(LC_COLLATE为"POSIX"或"C")和strcmp一样根据ASCII比较字符串大小。

对于设置了LC_COLLATE语言环境的情况下,则根据LC_COLLATE设置的语言排序方式进行比较。

例如:汉字,根据拼音进行比较。

strcpy原型:char *strcpy(char *dest, const char *src);头文件:#include <string.h> 和#include <stdio.h>功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

strcspn原型:size_t strcspn(const char *s, const char *reject);头文件:#include <string.h>功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。

说明:(返回字符串s1中第一个在s2中出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。

)strdup原型:char *strdup(const char *s);功能: 将串拷贝到新建的位置处strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。

返回一个指针,指向为复制字符串分配的空间;如果分配空间失败,则返回NULL值。

Strfry原型:char *strfry(char *string);头文件:#include <string.h>功能:strfry() 函数使用rand(3) 来随机交互string 的内容。

其结果是string 内容被随机交换了。

(译注:原文是“The result is an anagram of string”,我认为是错误的。

) 。

strfry() 函数返回随机化之后的字符串。

Strlen原型:size_t strlen(const char *s);头文件:#include <string.h>格式:strlen (字符数组名)功能:计算字符串s的(unsigned int型)长度,不包括'\0'在内说明:返回s的长度,不包括结束符NULL。

Strncat原型:char *strncat(char *dest, const char *src, size_t n);头文件:#include <string.h>说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

strncmp原型:int strncmp(const char *s1, const char *s2, size_t n);功能:这个函数用来比较s1和s2字符串,这个函数将返回一个值,它的符号与第一对不同的字符的比较结果相关。

如果两个字符串相等的话,strncmp将返回0。

如果s1是s2的一个子串的话,s1小于s2。

此外还有,函数int strncmp (const char *s1, const char *s2, size_t size) 此函数与strcmp极为类似。

不同之处是,strncmp函数是指定比较size个字符。

也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。

Strncpy原型:char *strncpy(char *dest, const char *src, size_t n);功能:(c/c++)复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。

如果src的前n个字节不含NULL字符,则结果不会以NULL 字符结束。

如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。

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

Strpbrk原型:char *strpbrk(const char *s, const char *accept);头文件:#include <string.h>功能:依次检验字符串s1中的字符,当被检验字符在字符串s2中也包含时,则停止检验,并返回该字符位置,空字符null不包括在内。

说明:返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。

用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。

strrchr原型:char *strrchr(const char *s, int c);头文件:#include <string.h>功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。

如果未能找到指定字符,那么函数将返回NULL。

strsep原型:char *strsep(char **stringp, const char *delim);头文件:#include <string.h>功能:分解字符串为一组字符串。

从stringp指向的位置起向后扫描,遇到delim指向的字符串中的字符后,将此字符替换为NULL,返回stringp指向的地址。

它适用于分割“关键字”在两个字符串之间只“严格出现一次”的情况。

strspn原型:size_t strspn(const char *s, const char *accept);头文件:#include <string.h>功能:strspn(返回字符串中第一个不在指定字符串中出现的字符下标)说明:strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。

简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。

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

strstr原型:char *strstr(const char *haystack, const char *needle);头文件:#include <string.h>功能:若str2是str1的子串,则先确定str2在str1的第一次出现的位置,并返回此str1在str2首位置的地址。

;如果str2不是str1的子串,则返回NULL。

strtok原型:char *strtok(char *s, const char *delim);头文件:#include <string.h>功能:分解字符串为一组字符串。

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

例如:strtok("abc,def,ghi",","),最后可以分割成为abc def ghi.尤其在点分十进制的IP 中提取应用较多。

返回:从s开头开始的一个个被分割的串。

当查找不到delim中的字符时,返回NULL。

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

strxfrm原型:size_t strxfrm(char *dest, const char *src, size_t n);头文件:#include <string.h>功能:strxfrm() 函数把字符串src 转换成另外一种形式. 用strcmp() 来比较两个转换后的字符串与用strcoll() 来比较它们转换前的字符串的返回值是一样的. 转换后的字符串的前n 个字符会存放于dest 中.返回:strxfrm() 函数返回除去结尾的`\0' 字符, 用来存储转换后的字符串所需要的字节数. 如果返回值大于或等于n, dest 中的内容就是不确定的.Strcat原型:extern char *strcat(char *dest,char *src);头文件:#include <string.h>在C++中,则存在于<cstring>头文件中。

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

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

返回指向dest的指针。

相关主题