/*1、串插入:在串S的第pos个字符处开始,插入串T*/ int SStrInsert(SString *S, int pos, const SString *T) { int i; if(NULL==S||NULL==S->ch||NULL==T|| pos<0 ||pos>S->length) return FALSE; if(_________________)//判断两个串长相加后是否溢出 { for(_________________;_________________;i--) //先把S串中插入位置后的字符,移动位置 _________________; for(_________________; _________________;i++) //把串T插入到串S的第pos位 _________________; _________________; //串S长度更新 return TRUE; } else return FALSE; }
时间: 2024-03-02 10:52:59 浏览: 54
这段代码是一个函数,实现了在串S的第pos个字符处开始插入串T的功能。我来帮您填空:
```
int SStrInsert(SString *S, int pos, const SString *T)
{
int i;
if(NULL == S || NULL == S->ch || NULL == T || pos < 0 || pos > S->length)
return FALSE;
if(_________________) //判断两个串长相加后是否溢出
{
for(_________________; __________________; i--) //先把S串中插入位置后的字符,移动位置
S->ch[_________________] = S->ch[_________________];
for(_________________; _________________; i++) //把串T插入到串S的第pos位
S->ch[_________________] = T->ch[_________________];
S->length = _________________; //串S长度更新
return TRUE;
}
else
return FALSE;
}
```
其中,第一个if语句是判断传入的参数是否合法,如果不合法则返回FALSE。
在第二个if语句中,需要判断两个串长相加后是否溢出,如果溢出则返回FALSE,否则继续执行插入操作。
接下来的for循环实现了将S串中插入位置后的字符移动位置的操作。
再接下来的for循环实现了将串T插入到串S的第pos位的操作。
最后,需要更新串S的长度。
具体的代码实现可以参考前面的回答。
阅读全文