0

atoi()C標準の一部ですか?

char*標準化されていない場合、何に変換intすればよいatoi()ですか?

4

4 に答える 4

9

はい、atoi()標準 C の一部です。残念ながら。

エラーチェックを行わないため、「残念ながら」と言います。0 が返された場合、それが渡されたからなのか、それとも渡されたからなのか"0"わかりません"hello, world\n"(動作が未定義の可能性がありますが、通常は 0 を返します)

このstrtol()関数の使い方はより複雑ですが、適切なエラー チェックを行います。結果が返され、long変換できる結果が返さintINT_MINますINT_MAX

参照: N1570 7.22.1.2。

于 2012-10-01T19:39:40.170 に答える
1

これはC 標準ライブラリの一部であり、以下で宣言する必要がありますstdlib.h

于 2012-10-01T19:37:16.473 に答える
1

はい、標準です。からman atoi:

名前 atoi, atoi_l -- ASCII 文字列を整数に変換する

LIBRARY 標準 C ライブラリ (libc、-lc)

#include <stdlib.h>

ただし、次のようにも述べています。

atoi() 関数は strtol() によって廃止されたため、新しいコードでは使用しないでください。

于 2012-10-01T19:37:19.513 に答える
1

atoiは現在の C 標準のstrtol一部ですが、標準の一部でもあり、より堅牢なインターフェイスを備えているものを検討してください。

于 2012-10-01T19:38:44.987 に答える