首页 > 代码库 > 如何在串中删除特定长度的子串
如何在串中删除特定长度的子串
昨天我们写了如何在串中插入另外一个串,那么今天我们来看看对应的操作:如何在串中删除指定长度的子串。也就是,从串S1中删除第pos个字符起长度为len的子串。
- 中原娱乐城其实就是数组操作啦,把第pos个元素起的len个元素去掉即可。具体怎么去掉呢?把S[pos+len]赋值给S[pos],把S[pos+len+1]赋值给S[pos+1]……以此类推就OK了。
函数设计如下:
view source print?
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 | } |
测试执行代码为:
view source print?
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 ; |
程序运行结果:
view source print?
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 |
完整的可执行程序在后面给出。
如何在串中删除特定长度的子串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。