c语言编程编写一个函数,删除字符串s中从下标k开始的n个字符(n和k从键盘输入)。 例如,字符串内容为:ChinaABC,k中的值为:5,n的值为:3,结果为:China
时间: 2023-06-05 22:09:10 浏览: 213
。
好的,我可以回答这个问题。以下是对应的 C 语言函数的实现:
```
void delete_chars(char *s, int k, int n) {
int len = strlen(s);
if (k < 0 || k >= len) {
return;
}
if (k + n >= len) { // 如果要删除到字符串末尾后面,直接截取子串即可
s[k] = '\0';
} else { // 否则先把后面的部分往前移动 n 个字符,再截取子串
memmove(s + k, s + k + n, len - k - n);
s[len - n] = '\0';
}
}
```
主函数可以这样写:
```
#include <stdio.h>
#include <string.h>
void delete_chars(char *s, int k, int n);
int main() {
char s[100];
int k, n;
printf("请输入一个字符串:\n");
scanf("%s", s);
printf("请输入要删除的起始位置和长度:\n");
scanf("%d %d", &k, &n);
delete_chars(s, k, n);
printf("删除后的字符串为: %s\n", s);
return 0;
}
```
假设我输入的字符串是 "ChinaABC",k=5,n=3,那么输出就是 "China"。
阅读全文