|
> sscanf("00123", "%*[0]%s", str);
>
> とすると、先頭の"00"だけを削除することができます。
ひとつ注意しなければならないのは、%*[0] は、1個以上の連続する 0 を
読み飛ばすということです。たとえば、sscanf("45678", "%*[0]%s", str);
のように 0 がない場合、str に文字列は入りません。
ただし、Borland C++ だけは、バグのせいか、失敗した %*[0] を無視して
次の %s に進んでしまい、str には、"45678" が入ります。
文字列関数を使うとすれば、次のようなやりかたもできます。
char a[] = "00123", b[256];
strcpy(b, a + strcpn(a, "0"));
|