>  2000/05/19 (金) 21:07:49      [mirai]
> > while(p[i]){if(p[i]==a)p[i]=b;i++;}
> > do{if(*p==a)*p=b;}while(*(++p)!='\0);
> > for(;*p!='\0';p++)if(*p==a)*p=b;
> > while(*p&&(*p==a&&((*p=b)||1))&&p++);
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > for式が最短だなヽ(´ー`)ノ
> 解説キボン(;´Д`)

while(*p && ( (*p == a && *p = b) || 1) ) && p++);
これベースで解説すると
while(
*p   ←*p が '\0' つまり 0 でなければ成立
&&
( (*p == a && *p = b) || 1)  ← *p == a なら *p に b 入れる。
                                        でなければ true で成立させとく
&& p++);  ←ポインタのインクリメント

参考:2000/05/19(金)21時03分52秒