string(char* || char[])
Cで整数を解析するにはどうすればよいですか? Integer.parseInt(String)
CのJavaからのメソッドに相当するものはありますか?
9 に答える
整数を文字列に変換したい場合は、関数 を試してくださいsnprintf()
。
文字列を整数に変換する場合は、関数sscanf()
またはatoi()
またはを試してくださいatol()
。
int を文字列に変換するには:
int x = -5;
char buffer[50];
sprintf( buffer, "%d", x );
ダブルスでも実行できます。
double d = 3.1415;
sprintf( buffer, "%f", d );
文字列を int に変換するには:
int x = atoi("-43");
これらの関数のドキュメントについては、http://www.acm.uiuc.edu/webmonkeys/book/c_guide/を参照してください。
の言及から判断すると、文字列があり、それを整数に変換したいように聞こえますが、質問からは明確ではありparseInt
ません...
これを行うには、 を使用しますstrtol
。この関数は よりわずかに複雑ですatoi
が、エラー状態をより明確に示します。これは、(呼び出し元が提供する) ポインターを混乱させた最初の文字のアドレスで満たすことができるためです。呼び出し元は、問題のある文字を調べて、文字列が有効かどうかを判断できます。atoi
とは対照的に、失われた場合は 0 を返すだけであり、これは常に役立つとは限りません。ただし、この動作に満足している場合は、それを使用することもできます。
の使用例は次のstrtol
とおりです。エラーのチェックは非常に単純です。認識されない最初の文字が'\x0'
文字列の末尾ではない場合、文字列は有効な int を含んでいないと見なされます。
int ParseInt(const char *s,int *i)
{
char *ep;
long l;
l=strtol(s,&ep,0);
if(*ep!=0)
return 0;
*i=(int)l;
return 1;
}
この関数は、*i に整数を入力し、文字列に有効な整数が含まれている場合は 1 を返します。それ以外の場合は、0 を返します。
これについては、Steve Summit の C FAQ で説明されています。
JavaparseInt()
関数は文字列を解析して整数を返します。同等の C 関数はatoi()
. ただし、これは質問の最初の部分と一致していないようです。整数から文字列に変換しますか、それとも文字列から整数に変換しますか?
atoi()
関数 (ascii から整数へ) とその親戚、atol
などをチェックアウトすることもできますatoll
。
また、逆の関数もあります。つまりitoa()
、and co です。
このサイトの準拠ソリューションを確認することをお勧めします。
あなたが試すことができます:
int intval;
String stringval;
//assign a value to intval here.
stringval = String(intval);
それはトリックを行う必要があります。