用C语言编写函数,删除字符串s中从下标k开始的n个字符(n和k从键盘输入)。例如,字符串内容为:ChinaABC,k中的值为:5,n中的值为:3,结果为:China。
时间: 2024-02-11 09:06:52 浏览: 21
可以按照以下步骤编写函数:
1. 从键盘输入字符串s、下标k和要删除的字符个数n;
2. 获取字符串s的长度len;
3. 判断是否可以删除n个字符,如果不行,则提示无法删除;
4. 否则,从下标k+n开始,将后面的字符向前移动n个位置,覆盖掉要删除的字符;
5. 最后,将字符串s的长度减去n。
下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
int k, n;
printf("Please enter a string: ");
scanf("%s", s);
printf("Please enter the index k and the number of characters to delete n: ");
scanf("%d %d", &k, &n);
int len = strlen(s);
if (k + n > len) {
printf("Error: Cannot delete %d characters starting from index %d\n", n, k);
return 1;
}
for (int i = k + n; i <= len; i++) {
s[i - n] = s[i];
}
len -= n;
s[len] = '\0';
printf("Result: %s\n", s);
return 0;
}
```
需要注意的是,如果要删除的字符个数超过了字符串的长度,就无法删除,需要进行错误处理。另外,删除字符后要将字符串的长度减去n,并在末尾添加一个空字符'\0'。