请编写C程序,从s串中删除一个由起始位置start和长度len决定的子串
时间: 2023-06-12 09:04:18 浏览: 106
删除S串中与T相同的子串
以下是一个简单的C程序,可实现从字符串s中删除一个指定子串:
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char s[], int start, int len) {
memmove(&s[start], &s[start + len], strlen(s) - start - len + 1);
}
int main() {
char s[100];
int start, len;
printf("请输入字符串s:");
fgets(s, 100, stdin);
printf("请输入要删除的子串的起始位置和长度:");
scanf("%d%d", &start, &len);
deleteSubstring(s, start, len);
printf("删除后的字符串为:%s", s);
return 0;
}
```
在上面的程序中,我们使用了 `memmove()` 函数来实现字符串的移动,因为 `memmove()` 可以处理重叠的内存块。函数的第一个参数是目标位置的指针,第二个参数是源位置的指针,第三个参数是要移动的字节数。注意,在移动时,我们需要将字符串的结尾符 '\0' 也一起移动。
阅读全文