欢迎来到天天文库
浏览记录
ID:51997339
大小:17.10 KB
页数:4页
时间:2020-03-21
《字符串的操作.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、字符串的操作(1)字符串采用数组存储,建立两个字符串String1和String2。输出两个字符串。(2)将字符串String2的头n个字符添加到String1的尾部。输出结果。(3)查找串String3在串String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上。输出结果。(4)求任意子字符串SUBSTR及删除子字符串。(5)求字符串的单词个数。typedefstruct/*串的静态数组结构体定义*/{charstr[maxsize];intlength;}string;voidin
2、itiate(string*s)/*初始化操作*/{s->length=0;}intinsert(string*s,inti,stringt)/*插入子串*/{intj;if(i<0
3、
4、i>s->length){printf("参数i出错!");return0;}elseif(s->length+t.length>maxsize){printf("数组空间不足无法插入!");return0;}else{for(j=s->length-1;j>=i;j--)s->str[i+t.length]=s->str[i];for(j=0;j5、.length;j++)s->str[i+j]=t.str[j];s->length=s->length+t.length;return1;}}intadd(string*s,string*t,intn)/*将string2的头n个字符加到string1的尾部,输出结果*/{inti;if(n>t->length){printf("参数n不合法!");return0;}else{for(i=0;istr[s->length+i]=t->str[i];s->length=s->length+n;for(i=n;i>t->6、length;i++)t->str[i-n]=t->str[i];t->length=t->length-n;return1;}}intindex(string*s,intm,string*t)/*查找串在串中的位置*/{inti=0,j=0,v,k;while(ilength&&jlength){if(s->str[i]==t->str[j]){i++;j++;}else{i=i-j+1;j=0;}}if(j=t->length){v=i-t->length;returnv;}else{for(k=s->length-1;k7、>=m;k--)s->str[k+t->length]=s->str[k];for(k=0;klength;k++)s->str[m+k]=t->str[k];s->length=s->length+t->length;return-1;}}intsubstrdelete(string*s,inti,intm,string*t)/*求任意子字符串substr并删除子字符串*/{intj;if(s->length==0){printf("数组中未存放字符元素,无元素可删!");return0;}elseif(i<08、9、m<=010、11、i12、+m>s->length){printf("参数i和m不合法!");return0;}else{for(j=0;jstr[j]=s->str[i+j];t->length=m;for(j=i+m;j<=s->lenth-1;j++)s->str[j-m]=s->str[j];s->length=s->length-m;return1;}}intwordnumber(string*s)/*求字符串的单词个数*/{intcount;inti;for(i=0;ilength-1;i++){if(s->str[i]="13、"){count++;}}count=count+1;}
5、.length;j++)s->str[i+j]=t.str[j];s->length=s->length+t.length;return1;}}intadd(string*s,string*t,intn)/*将string2的头n个字符加到string1的尾部,输出结果*/{inti;if(n>t->length){printf("参数n不合法!");return0;}else{for(i=0;istr[s->length+i]=t->str[i];s->length=s->length+n;for(i=n;i>t->
6、length;i++)t->str[i-n]=t->str[i];t->length=t->length-n;return1;}}intindex(string*s,intm,string*t)/*查找串在串中的位置*/{inti=0,j=0,v,k;while(ilength&&jlength){if(s->str[i]==t->str[j]){i++;j++;}else{i=i-j+1;j=0;}}if(j=t->length){v=i-t->length;returnv;}else{for(k=s->length-1;k
7、>=m;k--)s->str[k+t->length]=s->str[k];for(k=0;klength;k++)s->str[m+k]=t->str[k];s->length=s->length+t->length;return-1;}}intsubstrdelete(string*s,inti,intm,string*t)/*求任意子字符串substr并删除子字符串*/{intj;if(s->length==0){printf("数组中未存放字符元素,无元素可删!");return0;}elseif(i<0
8、
9、m<=0
10、
11、i
12、+m>s->length){printf("参数i和m不合法!");return0;}else{for(j=0;jstr[j]=s->str[i+j];t->length=m;for(j=i+m;j<=s->lenth-1;j++)s->str[j-m]=s->str[j];s->length=s->length-m;return1;}}intwordnumber(string*s)/*求字符串的单词个数*/{intcount;inti;for(i=0;ilength-1;i++){if(s->str[i]="
13、"){count++;}}count=count+1;}
此文档下载收益归作者所有