打印本文 打印本文 关闭窗口 关闭窗口
Linux C 函数参考(内存及字符串操作)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2233  更新时间:2009/4/22 23:08:51  文章录入:mintao  责任编辑:mintao
头文件 #include<string.h>
定义函数 size_t strlen (const char *s);
函数说明 strlen()用来计算指定的字符串s的长度,不包括结束字符"\0"。
返回值 返回字符串s的字符数。
范例 /*取得字符串str的长度*/
#include<string.h>
main()
{
char *str = "12345678";
printf("str length = %d\n", strlen(str));
}
执行 str length = 8
 


strncasecmp(忽略大小写比较字符串)
相关函数 bcmp,memcmp,strcmp,strcoll,strncmp
表头文件 #include<string.h>
定义函数 int strncasecmp(const char *s1,const char *s2,size_t n);
函数说明 strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
返回值 若参数s1和s2 字符串相同则返回0。s1 若大于s2则返回大于0的值,s1若小于s2则返回小于0 的值。
范例 #include<string.h>
main()
{
char *a="aBcDeF";
char *b="AbCdEf";
if(!strncasecmp(a,b))
printf("%s =%s\n",a,b);
}
执行 aBcDef=AbCdEf
 


strncat(连接两字符串)
相关函数 bcopy,memccpy,memecpy,strcpy,strncpy
表头文件 #inclue <string.h>
定义函数 char * strncat(char *dest,const char *src,size_t n);
函数说明 strncat()会将参数src字符串拷贝n个字符到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。
返回值 返回参数dest的字符串起始地址。
范例 #include <string.h>
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strnact() :%s\n", a);
printf("after strncat() :%s\n", strncat(a,b,6));
}
执行 before strnact() : string(1)
after strncat() : string(1) string
 


strncpy(拷贝字符串)
相关函数 bcopy,memccpy,memcpy,memmove
表头文件 #include<string.h>
定义函数 char * strncpy(char *dest,const char *src,size_t n);
函数说明 strncpy()会将参数src字符串拷贝前n个字符至参数dest所指的地址。
返回值 返回参数dest的字符串起始地址。
范例 #inclue <string.h>
main()
{
char a[30]="string(1)";
char b[]="string(2)";
printf("before strncpy() : %s\n",a);
printf("after strncpy() : %s\n",strncpy(a,b,6));
}
执行 before strncpy() : string(1)
after strncpy() : string(1)
 


strpbrk(查找字符串中第一个出现的指定字符)
相关函数 index,memchr,rindex,strpbrk,strsep,strspn,strstr,strtok
表头文件 #include <include.h>
定义函数 char *strpbrk(const char *s,const char *accept);
函数说明 strpbrk()用来找出参数s 字符串中最先出现存在参数accept 字符串中的任意字符。
返回值 如果找到指定的字符则返回该字符所在地址,否则返回0。
范例 #include <string.h>
main()
{
char *s="0123456789012345678901234567890";
char *p;
p=strpbrk(s,"a1 839"); /*1会最先在s字符串中找到*/
printf("%s\n",p);
p=strprk(s,"4398");/*3 会最先在s 字符串中找到*/
printf("%s\n",p);
执行 1.23E+29
 


strrchr(查找字符串中最后出现的指定字符)
相关函数 index,memchr,rindex,strpbrk,strsep,strspn,strstr,strtok
表头文件 #include<string.h>
定义函数 char * strrchr(const char *s, int c);
函数说明 strrchr()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。
返回值 如果找到指定的字符则返回该字符所在地址,否则返回0。
范例 #include<string.h>
main()
{
char *s="0123456789012345678901234567890";
char *p;
p=strrchr(s,''''5'''');
printf("%s\n",p);
}
执行 567890
 


strspn(返回字符串中连续不含指定字符串内容的字符数)
相关函数 strcspn,strchr,strpbrk,strsep,strstr
表头文件 #include<string.h>
定义函数 size_t strspn (const char *s,const char * accept);
函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。
返回值 返回字符串s开头连续包含字符串accept内的字符数目。
范例 #include<string.h>
main()
{
char *str="Linux was first developed for 386/486-based PCs.";
char *t1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d\n",strspn(str,t1));
}
执行 5 /*计算大小写字母。不包含“ ”,所以返回Linux的长度。*/
 


strstr(在一字符串中查找指定的字符串)
相关函数 index,memchr,rindex,strchr,strpbrk,strsep,strspn,strtok
表头文件 #include<string.h>
定义函数 char *strstr(const char *haystack,const char *needle);
函数说明 strstr()会从字符串haystack 中搜寻字符串needle,并将第一次出现的地址返回。
返回值 返回指定字符串第一次出现的地址,否则返回0。
范例 #include<string.h>
main()
{
char * s="012345678901234567890123456789";
char *p;
p= strstr(s,"901");
printf("%s\n",p);
}
执行 9.01E+21
 


strtok(分割字符串)
相关函数 index,memchr,rindex,strpbrk,strsep,strspn,strstr
表头文件 #include<string.h>
定义函数 char * strtok(char *s,const char *delim);
函数说明 strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
返回值 返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
范例 #include<string.h>
main()
{
char s[]="ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim="-: ";
char *p;
printf("%s ";strtok(s,delim));
while((p=strtok(NULL,delim)))printf("%s ",p);
printf("\n");
}
执行 ab cd ef;gh i jkl;mnop;qrs tu vwx y;z /*-与:字符已经被\0 字符取代*/
 

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口