> > 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秒