#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;//ikは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];//次のchまたは文字列の終端に出会うまでkポジション進む
i++;
}
if(str->ch[i] == '\0') break;
k++;
}
}
str->length-=k;
str->ch[str->length] = '\0';
}
void main()
{
Str a={{""},9,.ch[9]='\0'};
puts(a.ch);
removech(&a,'2');
puts(a.ch);
}
出力: