使用c语言实现编写函数void fun(char str[],int i,int n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。
时间: 2024-01-21 16:16:07 浏览: 125
以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
void fun(char str[], int i, int n) {
int len = strlen(str);
if (i < 0 || i >= len) {
printf("Invalid index i.\n");
return;
}
if (n <= 0 || i + n > len) {
printf("Invalid number of characters to delete.\n");
return;
}
memmove(str + i, str + i + n, len - i - n + 1);
}
int main() {
char str[100];
int i, n;
printf("Enter a string: ");
fgets(str, 100, stdin);
str[strcspn(str, "\n")] = '\0'; // remove newline character
printf("Enter index i and number of characters to delete n: ");
scanf("%d%d", &i, &n);
fun(str, i, n);
printf("Resulting string: %s\n", str);
return 0;
}
```
函数`fun`接受一个字符串`str`,一个起始索引`i`和一个要删除的字符数`n`作为参数。如果`i`或`n`无效,则函数将输出错误消息并返回。否则,函数将使用`memmove`函数从字符串中删除指定的字符,并将其余字符向左移动。最后,主函数将打印结果字符串。
阅读全文