码迷,mamicode.com
首页 > 其他好文 > 详细

如何在串中删除特定长度的子串

时间:2014-09-19 09:56:25      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   color   io   os   ar   for   div   

昨天我们写了如何在串中插入另外一个串,那么今天我们来看看对应的操作:如何在串中删除指定长度的子串。也就是,从串S1中删除第pos个字符起长度为len的子串

  • 其实就是数组操作啦,把第pos个元素起的len个元素去掉即可。具体怎么去掉呢?把S[pos+len]赋值给S[pos],把S[pos+len+1]赋值给S[pos+1]……以此类推就OK了。

函数设计如下:

01 /*  初始条件: 串S存在,1≤pos≤StrLength(S)-len+1 */
02 /*  操作结果: 从串S中删除第pos个字符起长度为len的子串 */
03 Status StrDelete(String S,int pos,int len)
04 {
05     int i;
06     if(pos < 1||pos>S[0]-len+1||len < 0)
07         return ERROR;
08     for(i=pos+len; i<=S[0]; i++)
09         S[i-len]=S[i];
10     S[0]-=len;
11     return OK;
12 }

测试执行代码为:

1 case 8:
2     printf("从串s1的第pos个字符起,删除len个字符,请输入pos: \n");
3     scanf("%d", &i);
4     printf("再输入len: \n");
5     scanf("%d", &j);
6     StrDelete(s1,i,j);
7     StrPrint(s1);
8     break;

程序运行结果:

01 1.StrAssign 生成串
02 2.StrLength 求串长
03 3.StrCompare 串比较
04 4.Concat 串连接
05 5.SubString 求子串
06 6.Index 求子串位置
07 7.StrInsert 子串插入
08 8.StrDelete 子串删除
09 0.退出
10 请选择你的操作:
11 1
12 串s1为:nowamagic.net
13  
14 8
15 从串s1的第pos个字符起,删除len个字符,请输入pos:
16 2
17 再输入len:
18 3
19 nmagic.net

完整的可执行程序在后面给出。

如何在串中删除特定长度的子串

标签:des   style   http   color   io   os   ar   for   div   

原文地址:http://www.cnblogs.com/laoyangman/p/3980738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!