Linux 常用C函数(内存及字符串操作篇2)
来源:互联网 发布:关于网络推广员的文章 编辑:程序博客网 时间:2024/05/22 15:55
strcat(连接两字符串) | |
相关函数 | bcopy,memccpy,memcpy,strcpy,strncpy |
表头文件 | #include |
定义函数 | char *strcat (char *dest,const char *src); |
函数说明 | strcat()会将参数src字符串拷贝到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。 |
返回值 | 返回参数dest的字符串起始地址 |
范例 | #include main() { char a[30]="string(1)"; char b[]="string(2)"; printf("before strcat() : %s\n",a); printf("after strcat() : %s\n",strcat(a,b)); } |
执行 | before strcat () : string(1) after strcat () : string(1)string(2) |
strchr(查找字符串中第一个出现的指定字符) | |
相关函数 | index,memchr,rinex,strbrk,strsep,strspn,strstr,strtok |
表头文件 | #include |
定义函数 | char * strchr (const char *s,int c); |
函数说明 | strchr()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。 |
返回值 | 如果找到指定的字符则返回该字符所在地址,否则返回0。 |
范例 | #include main() { char *s=0123456789012345678901234567890”; char *p; p=strchr(s,'5'); printf("%s\n",p); } |
执行 | 5.68E+25 |
strcmp(比较字符串) | |
相关函数 | bcmp,memcmp,strcasecmp,strncasecmp,strcoll |
表头文件 | #include |
定义函数 | int strcmp(const char *s1,const char *s2); |
函数说明 | strcmp()用来比较参数s1和s2字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。 |
返回值 | 若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。 |
范例 | #include main() { char *a="aBcDeF"; char *b="AbCdEf"; char *c="aacdef"; char *d="aBcDeF"; printf("strcmp(a,b) : %d\n",strcmp(a,b)); printf("strcmp(a,c) : %d\n",strcmp(a,c)); printf("strcmp(a,d) : %d\n",strcmp(a,d)); } |
执行 | strcmp(a,b) : 32 strcmp(a,c) :-31 strcmp(a,d) : 0 |
strcoll(采用目前区域的字符排列次序来比较字符串) | |
相关函数 | strcmp,bcmp,memcmp,strcasecmp,strncasecmp |
表头文件 | #include |
定义函数 | int strcoll( const char *s1, const char *s2); |
函数说明 | strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2 字符串。 |
返回值 | 若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。 |
附加说明 | 若LC_COLLATE为"POSIX"或"C",则strcoll()与strcmp()作用完全相同。 |
范例 | 参考strcmp()。 |
strcpy(拷贝字符串) | |
相关函数 | bcopy,memcpy,memccpy,memmove |
表头文件 | #include |
定义函数 | char *strcpy(char *dest,const char *src); |
函数说明 | strcpy()会将参数src字符串拷贝至参数dest所指的地址。 |
返回值 | 返回参数dest的字符串起始地址。 |
附加说明 | 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。 |
范例 | #include main() { char a[30]="string(1)"; char b[]="string(2)"; printf("before strcpy() :%s\n",a); printf("after strcpy() :%s\n",strcpy(a,b)); } |
执行 | before strcpy() :string(1) after strcpy() :string(2) |
strcspn(返回字符串中连续不含指定字符串内容的字符数) | |
相关函数 | strspn |
表头文件 | #inclued |
定义函数 | size_t strcspn ( const char *s,const char * reject); |
函数说明 | strcspn()从参数s字符串的开头计算连续的字符,而这些字符都完全不在参数reject 所指的字符串中。简单地说,若strcspn()返回的数值为n,则代表字符串s开头连续有n个字符都不含字符串reject内的字符。 |
返回值 | 返回字符串s开头连续不含字符串reject内的字符数目。 |
范例 | #include main() { char *str="Linux was first developed for 386/486-based pcs."; printf("%d\n",strcspn(str," ")); printf("%d\n",strcspn(str,"/-")); printf("%d\n",strcspn(str,"1234567890")); } |
执行 | 5 /*只计算到“ ”的出现,所以返回“Linux”的长度*/ 33 /*计算到出现“/”或“-”,所以返回到“6”的长度*/ 30 /* 计算到出现数字字符为止,所以返回“3”出现前的长度*/ |
strdup(复制字符串) | |
相关函数 | calloc,malloc,realloc,free |
表头文件 | #include |
定义函数 | char * strdup( const char *s); |
函数说明 | strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。 |
返回值 | 返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL表示内存不足。 |
范例 | #include main() { char a[]="strdup"; char *b; b=strdup(a); printf("b[ ]=\"%s\"\n",b); } |
执行 | b[ ]="strdup" |
strlen(返回字符串长度) | |
相关函数 | |
表头文件 | #include |
定义函数 | size_t strlen (const char *s); |
函数说明 | strlen()用来计算指定的字符串s的长度,不包括结束字符"\0"。 |
返回值 | 返回字符串s的字符数。 |
范例 | /*取得字符串str的长度*/ #include main() { char *str = "12345678"; printf("str length = %d\n", strlen(str)); } |
执行 | str length = 8 |
strncasecmp(忽略大小写比较字符串) | |
相关函数 | bcmp,memcmp,strcmp,strcoll,strncmp |
表头文件 | #include |
定义函数 | 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 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 |
定义函数 | char * strncat(char *dest,const char *src,size_t n); |
函数说明 | strncat()会将参数src字符串拷贝n个字符到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。 |
返回值 | 返回参数dest的字符串起始地址。 |
范例 | #include 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 |
定义函数 | char * strncpy(char *dest,const char *src,size_t n); |
函数说明 | strncpy()会将参数src字符串拷贝前n个字符至参数dest所指的地址。 |
返回值 | 返回参数dest的字符串起始地址。 |
范例 | #inclue 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 |
定义函数 | char *strpbrk(const char *s,const char *accept); |
函数说明 | strpbrk()用来找出参数s 字符串中最先出现存在参数accept 字符串中的任意字符。 |
返回值 | 如果找到指定的字符则返回该字符所在地址,否则返回0。 |
范例 | #include 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 |
定义函数 | char * strrchr(const char *s, int c); |
函数说明 | strrchr()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。 |
返回值 | 如果找到指定的字符则返回该字符所在地址,否则返回0。 |
范例 | #include main() { char *s="0123456789012345678901234567890"; char *p; p=strrchr(s,'5'); printf("%s\n",p); } |
执行 | 567890 |
strspn(返回字符串中连续不含指定字符串内容的字符数) | |
相关函数 | strcspn,strchr,strpbrk,strsep,strstr |
表头文件 | #include |
定义函数 | size_t strspn (const char *s,const char * accept); |
函数说明 | strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。 |
返回值 | 返回字符串s开头连续包含字符串accept内的字符数目。 |
范例 | #include 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 |
定义函数 | char *strstr(const char *haystack,const char *needle); |
函数说明 | strstr()会从字符串haystack 中搜寻字符串needle,并将第一次出现的地址返回。 |
返回值 | 返回指定字符串第一次出现的地址,否则返回0。 |
范例 | #include 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 |
定义函数 | char * strtok(char *s,const char *delim); |
函数说明 | strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。 |
返回值 | 返回下一个分割后的字符串指针,如果已无从分割则返回NULL。 |
范例 | #include 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"); } |
0
上一篇:自己做的c编程来理解argc,argv
下一篇:嵌入式系统移植三步曲 孟明明
相关热门文章
- A sample .exrc file for vi e...
- IBM System p5 服务器 HACMP ...
- 游标的特征
- DB2 9 应用开发(733 考试)认...
- busybox的httpd使用CGI脚本(Bu...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- Linux 常用C函数(内存及字符串操作篇2)
- Linux 常用C函数(内存及字符串操作篇2)
- Linux 常用C函数(内存及字符串操作篇2)
- Linux 常用C函数(内存及字符串操作篇2)
- Linux 常用C函数(内存及字符串操作篇2)
- Linux常用C函数-内存及字符串操作篇
- Linux 常用C函数(内存及字符串操作篇1)
- Linux 常用C函数(内存及字符串操作篇1)
- Linux常用C函数—内存及字符串操作篇
- Linux常用C函数—内存及字符串操作篇
- Linux常用C函数—内存及字符串操作篇
- linux常用c函数 内存及字符串操作篇
- Linux常用C函数-内存及字符串操作篇
- Linux常用C函数—内存及字符串操作篇
- linux常用c函数 内存及字符串操作篇
- Linux 常用C函数说明-内存及字符串操作篇
- Linux 常用C函数说明-内存及字符串操作篇(中文版)
- Linux 常用C函数说明-内存及字符串操作篇(中文版)
- c语言 结构与联合
- DTD学习------从初识到理解
- C 打印菱形
- ASCII码排序/java
- 自己做的c编程来理解argc,argv
- Linux 常用C函数(内存及字符串操作篇2)
- Eclipse lombok 配置
- 嵌入式系统移植三步曲 孟明明
- NAT DHCP WWW rc.local
- Linux查看网络链接性能
- React Native创建原生模块
- CentOS 6.2 下安装QQ2012完全可用
- Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function问题解决
- [LeetCode]529. Minesweeper
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
垂体饱满
垂体萎缩
垂体增大
垂体巨腺瘤
脑垂体瘤早期症状
垂体瘤的症状
垂体泌乳素高原因
脑垂体是什么
脑垂体瘤症状
垂体瘤严重吗
垂体泌乳素高怎么调理
垂体后叶素说明书
脑垂体微腺瘤
女性脑垂体瘤会死吗
2018年脑垂体瘤算是重病吗
下丘脑垂体系统
垂体瘤有生命危险吗
垂体瘤能活多久
垂体微腺瘤可以自愈吗
垂体分泌的激素
垂体腺瘤会死人吗
垂体窝位于哪里
泌乳素垂体瘤
垂体泌乳素瘤
垂体泌乳素正常值
垂体微腺瘤一般寿命多长
垂体后叶素止血用法
垂体后叶注射剂
垂体功能减退
良性脑垂体瘤能活多久
垂体泌乳素高怎么办
垂体腺瘤严重吗
垂体催乳素高怎么办
垂体催乳素高是什么原因
垂体分泌的激素有哪些
垂体大腺瘤严重吗
垂体微腺瘤会自动消失
垂体催乳素偏高
垂体泌乳素腺瘤
垂体催乳素高
腺垂体分泌的激素