用c语言编程实现:输入长度不超过30的字符串、待删除子串的起始位置和长度,从字符串中删除待删除子串,并输出删除后的字符串。
时间: 2023-06-12 14:05:04 浏览: 106
以下是C语言实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 30
int main() {
char str[MAX_LEN+1];
int start, len;
printf("请输入长度不超过30的字符串:");
scanf("%s", str);
printf("请输入待删除子串的起始位置和长度(以空格分隔):");
scanf("%d %d", &start, &len);
if (start < 0 || start > strlen(str) || len < 0) {
printf("输入有误,请重新输入!\n");
return 0;
}
if (start + len > strlen(str)) {
len = strlen(str) - start;
}
memmove(str+start, str+start+len, strlen(str)-start-len+1);
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
代码中使用了`memmove()`函数来实现字符串的删除操作。`memmove()`函数可以将一段内存区域的内容复制到另一个内存区域,即可实现删除子串的效果。具体来说,我们将待删除子串后面的部分向前移动,覆盖待删除子串,然后将字符串末尾的空字符`\0`也向前移动,保证字符串的正确性。
阅读全文