昨天我們寫(xiě)了如何在串中插入另外一個(gè)串,那么今天我們來(lái)看看對(duì)應(yīng)的操作:如何在串中刪除指定長(zhǎng)度的子串。也就是,從串S1中刪除第pos個(gè)字符起長(zhǎng)度為len的子串。
其實(shí)就是數(shù)組操作啦,把第pos個(gè)元素起的len個(gè)元素去掉即可。具體怎么去掉呢?把S[pos+len]賦值給S[pos],把S[pos+len+1]賦值給S[pos+1]……以此類(lèi)推就OK了。
函數(shù)設(shè)計(jì)如下:
01
/* 初始條件: 串S存在,1≤pos≤StrLength(S)-len+1 */
02
/* 操作結(jié)果: 從串S中刪除第pos個(gè)字符起長(zhǎng)度為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
}
測(cè)試執(zhí)行代碼為:
1
case 8:
2
printf("從串s1的第pos個(gè)字符起,刪除len個(gè)字符,請(qǐng)輸入pos: \n");
3
scanf("%d", &i);
4
printf("再輸入len: \n");
5
scanf("%d", &j);
6
StrDelete(s1,i,j);
7
StrPrint(s1);
8
break;
程序運(yùn)行結(jié)果:
view source print?
01
1.StrAssign 生成串
02
2.StrLength 求串長(zhǎng)
03
3.StrCompare 串比較
04
4.Concat 串連接
05
5.SubString 求子串
06
6.Index 求子串位置
07
7.StrInsert 子串插入
08
8.StrDelete 子串刪除
09
0.退出
10
請(qǐng)選擇你的操作:
11
1
12
串s1為:nowamagic.net
13
14
8
15
從串s1的第pos個(gè)字符起,刪除len個(gè)字符,請(qǐng)輸入pos:
16
2
17
再輸入len:
18
3
19
nmagic.net
完整的可執(zhí)行程序在后面給出。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄