编写一个函数,将顺序串S1中的第i个字符到第j个字符直接的字符用串S2替换。C语言
时间: 2024-02-22 14:00:20 浏览: 106
字符串替换C程序
以下是一个C语言函数,实现了将顺序串S1中的第i个字符到第j个字符直接的字符用串S2替换的功能。
```c
void replace_str(char *s1, int i, int j, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int len = len1 - (j - i + 1) + len2;
char *temp = (char *) malloc(len + 1);
strncpy(temp, s1, i);
temp[i] = '\0';
strcat(temp, s2);
strcat(temp, s1 + j + 1);
strcpy(s1, temp);
free(temp);
}
```
这个函数的参数包括:
- `s1`:需要进行替换操作的顺序串。
- `i`:需要替换的起始位置。
- `j`:需要替换的结束位置。
- `s2`:替换用的串。
函数首先计算出替换后的串的长度,并申请一段临时的内存空间用于存储替换后的串。然后,将S1中从开头到第i个字符的部分复制到临时串temp中,接着将s2拼接到temp中,最后将S1中从j+1个字符到结尾的部分拼接到temp中。最后,将temp复制回S1中,完成替换操作。
阅读全文