#include<stdio.h>
#include<stdlib.h>
typedef struct {
char ch[10];
int length;
}Str;
void removech(Str *str,char ch){
int k=0,i=0;//i标记当前位置,k标记出现ch的次数
while(str->ch[i] != '\0' && str->ch[i] != ch) i++;//找到第一个ch则k+1
if(i<str->length){
k++;
while(str->ch[++i] != '\0'){//i自加,移到ch的下一个位置
while(str->ch[i] != '\0' && str->ch[i] != ch){
str->ch[i-k] = str->ch[i];//前移k个位置,直到遇到下一个ch或串尾
i++;
}
if(str->ch[i] == '\0') break;
k++;
}
}
str->length-=k;
str->ch[str->length] = '\0';
}
void main()
{
Str a={{"122325678"},9,.ch[9]='\0'};
puts(a.ch);
removech(&a,'2');
puts(a.ch);
}
输出:
122325678
135678