閱讀以下說(shuō)明和C函數(shù),填補(bǔ)代碼中的空缺(1)~(5),將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
函數(shù)removeDuplicates(char *str)的功能是移除給定字符串中的重復(fù)字符,使每種字符僅保留一個(gè),其方法是:對(duì)原字符串逐個(gè)字符進(jìn)行掃描,遇到重復(fù)出現(xiàn)的字符時(shí),設(shè)置標(biāo)志,并將其后的非重復(fù)字符前移。例如,若str指向的字符串為“aaabbbbscbsss”,則函數(shù)運(yùn)行后該字符串為“absc”。
【C代碼】
void removeDuplicates(char *str)
{
int i, len=strlen(str); /* 求字符串長(zhǎng)度 */
if( (1) ) return; /* 空串或長(zhǎng)度為1的字符串無(wú)需處理 */
for( i=0; i<len; i++ ) {
int flag=0; /* 字符是否重復(fù)標(biāo)志 */
int m;
for( m= (2) ; m<len; m++ ) {
if( str[i]==str[m] ) {
(3) ; break;
}
}
if(flag) {
int n, idx=m;
/* 將字符串第idx字符之后、與str[i]不同的字符向前移 */
for( n=idx+1; n<len; n++ )
if( str[n]!=str[i] ) {
str[idx]=str[n]; (4) ;
}
str[ (5) ]='\0'; /* 設(shè)置字符串結(jié)束標(biāo)志 */
}
}
}