Linux C,任意位置删除n个字符并将该字符后面的所有内容整体向前移动n个字符,打印删除的字符和删除文件的位置,示例代码
时间: 2024-02-20 14:56:40 浏览: 66
以下是一个简单的示例代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 1000 // 假设字符串最大长度为1000
void deleteChars(char *str, int pos, int n) {
// 打印删除的字符
printf("删除的字符:");
for (int i = pos; i < pos + n; i++) {
printf("%c", str[i]);
}
printf("\n");
// 将后面的字符整体向前移动n个位置
int len = strlen(str);
for (int i = pos + n; i <= len; i++) {
str[i - n] = str[i];
}
}
int main() {
char str[MAX_LENGTH];
int pos, n;
printf("请输入字符串:");
fgets(str, MAX_LENGTH, stdin);
printf("请输入要删除的位置和字符数(用空格分隔):");
scanf("%d %d", &pos, &n);
deleteChars(str, pos, n);
printf("删除后的字符串:%s\n", str);
return 0;
}
```
示例运行结果:
```
请输入字符串:Hello World!
请输入要删除的位置和字符数(用空格分隔):6 5
删除的字符:Worl
删除后的字符串:Hello d!
```
阅读全文