C语言字符串库函数的实现_第1页
C语言字符串库函数的实现_第2页
C语言字符串库函数的实现_第3页
C语言字符串库函数的实现_第4页
C语言字符串库函数的实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include #include #include #define str_max_len 100char mark10; /cut_str中分隔符的长度/*函数列表(兼容字符和串)void revstr(char *str) /字符串反转int substring(char *res,int pos,int len,char *substr)/从pos开始取len个字符到substr中,返回1成功,0失败int strindex(char *res,int pos,char *substr) /返回substr在resource中在pos后出现的位置,返回0表示没找到int del_sub

2、str(char *res,int pos,int len)/从res的pos位置开始删除len个字符,1成功,0失败int insert_substr(char *res,char pos,char const *substr)/在res的pos前插入substr,1成功,0失败int strreplace(char *res,char *substr,char *desstr)/替换res中的substr为desstr,1成功,0失败int str_count(char *res,char *substr)/统计res中的substr出现的次数int cut_str(char *res,c

3、har *mark,int pos,char *substr) /取res中第pos个用mark分隔的串存入sunstr,1成功,0失败int str_cat(char *str,const char *args,.) /拼接多个字符串常量存入str,1成功,0失败int strarray_cat(char (*arr)str_max_len,int i,char *str) /把二维arr字符串数组拼接成一个串,i是第一维的长度,存入strint replacate(char *res,int n,char const *str) /产生n个重复的str(串或者字符)存入res*/ void

4、 revstr(char *str) /字符串反转int i=0,h,j;h=j=strlen(str)-1;char *p=str,c;while(istrlen(res)return 0;pos-;while(istrlen(res)substri=0;break;substri=0;return 1;int strindex(char *res,int pos,char *substr) /返回substr在resource中在pos后出现的第一个位置int i=pos,c=0;char *p=res+(i-1),*q=substr;while(*p!=0) q=substr; whil

5、e(1) if(*p=*q) if(*(q+1)=0) i=i-strlen(substr); return i+1; p+; q+; +i; c+; continue; else if(c0) p=p-c+1; i=i-c+1; c=0; break; else p+; i+; break; return 0;int del_substr(char *res,int pos,int len)/从res的pos位置开始删除len个字符int i=0;if(posstrlen(res)return 0;char *p=res+(pos-1),*q=res+(pos+len-1);do*p+=*q

6、+;while(*q!=0);*p=0;return 1;int insert_substr(char *res,char pos,char const *substr)/在res的pos前插入substrchar *p=res+(pos-1),*q=res+(strlen(res)+strlen(substr);/p指示待插入位置,q指示移动的位置char *e=res+strlen(res);/已经包含结束符if(posstrlen(res)+1|posstr_max_len)return 0;for(;q=p;q-) /藤出空间*q=*e-;/插入while(*substr!=0)*p+

7、=*substr+; return 1;int strreplace(char *res,char *substr,char *desstr)/替换res中的substr为desstrint l,j=1,k,d,i;l=strlen(substr);doj=strindex(res,j,substr);if(j=0)break;d=del_substr(res,j,l);i=insert_substr(res,j,desstr);j+=strlen(desstr);while(j!=0);return 1; int str_count(char *res,char *substr)/统计res

8、中的substr出现的次数int l,j=1,c=0;l=strlen(substr);doj=strindex(res,j,substr);if(j=0)return c;c+;j+=l;/后移l个长度 while(j!=0); int cut_str(char *res,char *mark,int pos,char *substr) /取res中第pos个mark前的串int pos1,pos2=1,j=1,c=0,i=0;if(str_count(res,mark)=0|pos=0)return 0;dopos1=j-1;j=strindex(res,j,mark);c+;/累计第几次

9、出现if(c=str_count(res,mark)+1)substring(res,pos2+1,50,substr);return 1;pos2=j;j+; if(pos2pos1&c=pos) pos1+=(strlen(mark)-1); while(pos1pos2-1) substri+=respos1+; break; while(j!=0);substri=0;return 1;int str_cat(char *str,const char *args,.) /num个串拼接存入strva_list ap;const char *p=NULL;int j=0,i=0; va_

10、start(ap,args);while(args!=0) p=args; while(*p!=0) stri+=*p+; args=va_arg(ap,const char *); /stri=0; va_end(ap);stri-4=0;return 1;int strap_cat(char (*arr)str_max_len,int i,char *str) /把第一维为i第二维长度为str_max_len的arr字符串数组拼接成一个串,存入strint j;char *p;if(i1)return 0;for(j=0;ji;j+) p=arrj; while(*p!=0) *str+=*p+; *str=0;return 1; int strpa_cat(char *arr,int i,char *str) /把arr字符指针数组(长度为i)包含的串拼接成一个串,存入strint j;char *p;if(i1)return 0;for(j=0;ji;j+) p=arrj; while(*p!=0) *str+=*p+; *str=0;return 1;int rep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论