/*
delChar(指向字符串的指针,要删除的字符个数,删除的起始位置(1,2,3...))
eg: aabbcc,3,3
result: aac
*/
#include <stdio.h>
#include <string.h>
#define L 100
void delChar(char *,int,int);
int main()
{
char str[L+1],ch;
int i=0,a,b;
while ((ch=getchar())!='\n'&&ch!=EOF)
{
str[i++]=ch;
}
str[i]='\0';
scanf("%d%d",&a,&b);
delChar(str,a,b);
printf("%s",str);
return 0;
}
void delChar(char * str,int a,int b)
{
char *p=str,*p2=str;
p+=b-1;
for(int j=0;j<a;j++){
*p++='\0';
}
strcat(p2,p);
}
原理很简单,就是让一个指针指向删除的起始位置,并将需要删除的这一部分字符全部赋值为'\0',最后将两个字符串拼接即可。如输入"aabbca,3,3",delChar函数中的指针会将其修改为aa\0\0\0a\0,再把aa和a拼接用起来得到aaa。