用c语言编写一个程序,从子串s中删除从第i个字符的n个字符
时间: 2024-05-07 07:16:51 浏览: 93
C语言程序设计-编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符
5星 · 资源好评率100%
好的,我明白了。以下是使用C语言编写一个程序,从子串s中删除从第i个字符开始的n个字符的代码:
```
#include <stdio.h>
#include <string.h>
void deleteChars(char s[], int i, int n) {
int length = strlen(s);
// 将第i+n个字符后面的字符移动n个位置
memmove(&s[i], &s[i + n], length - i - n + 1);
}
int main() {
char s[] = "abcdefg";
printf("Original string: %s\n", s);
int i = 2, n = 3;
deleteChars(s, i, n);
printf("Modified string: %s\n", s);
return 0;
}
```
解释一下上面的代码:
首先定义了一个函数deleteChars,它接受一个字符串s,以及要删除的起始字符位置i和要删除的字符个数n。
在函数中,首先使用strlen函数获取字符串长度,然后使用memmove函数将第i+n个字符后面的字符向前移动n个位置。最后记得要将字符串末尾的\0字符也移动过来。
在主函数中,我们定义一个测试字符串s,然后调用deleteChars函数将从第二个字符开始的三个字符删除。最后打印修改后的字符串。
注意:这只是一个简单的示例程序,实际应用中可能需要考虑更多的边界情况和错误处理。
阅读全文