字符串函数库Word文件下载.docx
《字符串函数库Word文件下载.docx》由会员分享,可在线阅读,更多相关《字符串函数库Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
memcpy(destsrc,30);
/*dest指针放在钱*/
printf(‘\nmemcpy():
“);
执行bcopy():
stringstring
memcpy():
stringsring
bzero(将一段内存内容全清为零)相关函数memset,swab
定义函数voidbzero(void*s,intn);
函数说明bzero()会将参数s所指的内存区域前n个字节,全部设为零值。
相当于调用memset((void*)s,0,size_tn);
返回值附加说明建议使用memset取代
范例参考memset()。
index(查找字符串中第一个出现的指定字符)相关函数rindex,srechr,strrchr
定义函数char*index(constchar*s,intc);
函数说明index()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。
字符串结束字符(NULL)也视为字符串一部分。
返回值如果找到指定的字符则返回该字符所在地址,否则返回0。
char*s=”0123456789012345678901234567890”;
char*p;
p=index(s,’5’);
printf(%s\n”,p);
}
执行5.68E+25
memccpy(拷贝内存内容)相关函数bcopy,memcpy,memmove,strcpy,strncpy
定义函数void*memccpy(void*dest,constvoid*src,intc,size_tn);
函数说明memccpy()用来拷贝src所指的内存内容前n个字节到dest所指的地址上。
与memcpy()不同的是,memccpy()会在复制时检查参数c是否出现,若是则返回dest中值为c的下一个字节地址。
返回值返回指向dest中值为c的下一个字节指针。
返回值为0表示在src所指内存前n个字节中没有值为c的字节。
chara[]="
string[a]"
;
charb[]="
string(b)"
memccpy(a,b,'
B'
sizeof(b));
printf("
memccpy():
%s\n"
a);
执行memccpy():
string(b)
memchr(在某一内存范围中查找一特定字符)相关函数index,rindex,strchr,strpbrk,strrchr,strsep,strspn,strstr
定义函数void*memchr(constvoid*s,intc,size_tn);
函数说明memchr()从头开始搜寻s所指的内存内容前n个字节,直到发现第一个值为c的字节,则返回指向该字节的指针。
返回值如果找到指定的字节则返回该字节的指针,否则返回0。
范例#include<
char*s="
0123456789012345678901234567890"
p=memchr(s,'
5'
10);
p);
memcmp(比较内存内容)相关函数bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp
定义函数intmemcmp(constvoid*s1,constvoid*s2,size_tn);
函数说明memcmp()用来比较s1和s2所指的内存区间前n个字符。
字符串大小的比较是以ASCII码表上的顺序来决定,次顺序亦为字符的值。
memcmp()首先将s1第一个字符值减去s2第一个字符的值,若差为0则再继续比较下个字符,若差值不为0则将差值返回。
例如,字符串"
Ac"
和"
ba"
比较则会返回字符'
A'
(65)和'
b'
(98)的差值(-33)。
返回值若参数s1和s2所指的内存内容都完全相同则返回0值。
s1若大于s2则返回大于0的值。
s1若小于s2则返回小于0的值。
char*a="
aBcDeF"
char*b="
AbCdEf"
char*c="
aacdef"
char*d="
memcmp(a,b):
%d\n"
memcmp((void*)a,(void*)b,6));
memcmp(a,c):
memcmp((void*)a,(void*)c,6));
memcmp(a,d):
memcmp((void*)a,(void*)d,6));
执行memcmp(a,b):
1/*字符串a>
字符串b,返回1*/
-1/*字符串a<
字符串c,返回-1*/
0/*字符串a=字符串d,返回0*/
memcpy(拷贝内存内容)相关函数bcopy,memccpy,memcpy,memmove,strcpy,strncpy
定义函数void*memcpy(void*dest,constvoid*src,size_tn);
函数说明memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。
与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'
\0'
而结束。
返回值返回指向dest的指针。
附加说明指针src和dest所指的内存区域不可重叠。
chara[30]="
string(a)"
charb[30]="
string\0string"
strcpy(a,b);
strcpy():
"
);
%c"
a[i]);
memcpy(a,b,30);
\nmemcpy():
执行strcpy():
stringa)
memmove(拷贝内存内容)相关函数bcopy,memccpy,memcpy,strcpy,strncpy
定义函数void*memmove(void*dest,constvoid*src,size_tn);
函数说明memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。
不同的是,当src和dest所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用memcpy()略慢些。
附加说明指针src和dest所指的内存区域可以重叠。
范例参考memcpy()。
memset(将一段内存空间填入某值)相关函数bzero,swab
定义函数void*memset(void*s,intc,size_tn);
函数说明memset()会将参数s所指的内存区域前n个字节以参数c填入,然后返回指向s的指针。
在编写程序时,若需要将某一数组作初始化,memset()会相当方便。
返回值返回指向s的指针。
附加说明参数c虽声明为int,但必须是unsignedchar,所以范围在0到255之间。
chars[30];
memset(s,'
sizeof(s));
s[30]='
s);
执行AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
rindex(查找字符串中最后一个出现的指定字符)相关函数index,memchr,strchr,strrchr
定义函数char*rindex(constchar*s,intc);
函数说明rindex()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。
返回值如果找到指定的字符则返回该字符所在的地址,否则返回0。
mian()
char*s="
p=rindex(s,'
执行567890
strcasecmp(忽略大小写比较字符串)相关函数bcmp,memcmp,strcmp,strcoll,strncmp
定义函数intstrcasecmp(constchar*s1,constchar*s2);
函数说明strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值若参数s1和s2字符串相同则返回0。
s1长度大于s2长度则返回大于0的值,s1长度若小于s2长度则返回小于0的值。
char*a="
if(!
strcasecmp(a,b))
%s=%s\n"
a,b);
执行aBcDeF=AbCdEf
strcat(连接两字符串)相关函数bcopy,memccpy,memcpy,strcpy,strncpy
定义函数char*strcat(char*dest,constchar*src);
函数说明strcat()会将参数src字符串拷贝到参数dest所指的字符串尾。
第一个参数dest要有足够的空间来容纳要拷贝的字符串。
返回值返回参数dest的字符串起始地址
string.h.>
string
(1)"
string
(2)"
beforestrcat():
%s\n"
afterstrcat():
strcat(a,b));
执行beforestrcat():
string
(1)
afterstrcat():
string
(1)string
(2)
strchr(查找字符串中第一个出现的指定字符)相关函数index,memchr,rinex,strbrk,strsep,strspn,strstr,strtok
定义函数char*strchr(constchar*s,intc);
函数说明strchr()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。
char*s=0123456789012345678901234567890”;
p=strchr(s,'
strcmp(比较字符串)相关函数bcmp,memcmp,strcasecmp,strncasecmp,strcoll
定义函数intstrcmp(constchar*s1,constchar*s2);
函数说明strcmp()用来比较参数s1和s2字符串。
字符串大小的比较是以ASCII码表上的顺序来决定,此顺序亦为字符的值。
strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0则将差值返回。
例如字符串"
比较则会返回字符"
A"
s1若小于s2则返回小于0的值。
strcmp(a,b):
%d\n"
strcmp(a,b));
strcmp(a,c):
strcmp(a,c));
strcmp(a,d):
strcmp(a,d));
执行strcmp(a,b):
32
-31
0
strcoll(采用目前区域的字符排列次序来比较字符串)相关函数strcmp,bcmp,memcmp,strcasecmp,strncasecmp
定义函数intstrcoll(constchar*s1,constchar*s2);
函数说明strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2字符串。
附加说明若LC_COLLATE为"
POSIX"
或"
C"
,则strcoll()与strcmp()作用完全相同。
范例参考strcmp()。
strcpy(拷贝字符串)相关函数bcopy,memcpy,memccpy,memmove
定义函数char*strcpy(char*dest,constchar*src);
函数说明strcpy()会将参数src字符串拷贝至参数dest所指的地址。
返回值返回参数dest的字符串起始地址。
附加说明如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(bufferOverflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。
beforestrcpy():
afterstrcpy():
strcpy(a,b));
执行beforestrcpy():
string
(1)
string
(2)
strcspn(返回字符串中连续不含指定字符串内容的字符数)相关函数strspn
表头文件#inclued<
定义函数size_tstrcspn(constchar*s,constchar*reject);
函数说明strcspn()从参数s字符串的开头计算连续的字符,而这些字符都完全不在参数reject所指的字符串中。
简单地说,若strcspn()返回的数值为n,则代表字符串s开头连续有n个字符都不含字符串reject内的字符。
返回值返回字符串s开头连续不含字符串reject内的字符数目。
char*str="
Linuxwasfirstdevelopedfor386/486-basedpcs."
strcspn(str,"
"
));
/-"
1234567890"
执行5/*只计算到“”的出现,所以返回“Linux”的长度*/
33/*计算到出现“/”或“-”,所以返回到“6”的长度*/
30/*计算到出现数字字符为止,所以返回“3”出现前的长度*/
strdup(复制字符串)相关函数calloc,malloc,realloc,free
定义函数char*strdup(constchar*s);
函数说明strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。
该地址最后可以利用free()来释放。
返回值返回一字符串指针,该指针指向复制后的新字符串地址。
若返回NULL表示内存不足。
strdup"
char*b;
b=strdup(a);
b[]=\"
%s\"
\n"
b);
执行b[]="
strlen(返回字符串长度)相关函数表头文件#include<
定义函数size_tstrlen(constchar*s);
函数说明strlen()用来计算指定的字符串s的长度,不包括结束字符"
\0"
。
返回值返回字符串s的字符数。
范例/*取得字符串str的长度*/
#include<
char*str="
12345678"
strlength=%d\n"
strlen(str));
执行strlength=8
strncasecmp(忽略大小写比较字符串)相关函数bcmp,memcmp,strcmp,strcoll,strncmp
定义函数intstrncasecmp(constchar*s1,constchar*s2,size_tn);
函数说明strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
返回值若参数s1和s2字符串相同则返回0。
s1若大于s2则返回大于0的值,s1若小于s2则返回小于0的值。
strncasecmp(a,b))
%s=%s\n"
执行aBcDef=AbCdEf
strncat(连接两字符串)相关函数bcopy,memccpy,memecpy,strcpy,strncpy
表头文件#inclue<
定义函数char*strncat(char*dest,constchar*src,size_tn);
函数说明strncat()会将参数src字符串拷贝n个字符到参数dest所指的字符串尾。
beforestrnact():
a);
afterstrncat():
strncat(a,b,6));
执行beforestrnact():
string
(1)string
strncpy(拷贝字符串)相关函数bcopy,memccpy,memcpy,memmove
定义函数char*strncpy(char*dest,constchar*src,size_tn);
函数说明strncpy()会将参数src字符串拷贝前n个字符至参数dest所指的地址。
范例#inclue<
cha