Cで整数をstring(char* || char[])
に解析するにはどうすればよいですか? Java CのInteger.parseInt(String)
メソッドに相当するものはありますか?
整数を文字列に変換したい場合は、関数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
の言及から判断すると、それを整数に変換したいようですが、quiteは質問から明らかではありません...
これを行うには、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の 議論 です。
Java parseInt()
関数は文字列を解析して整数を返します。同等のC関数はatoi()
ですが、これは質問の最初の部分です。整数から文字列に、または文字列から整数に変換しますか?
atoi()
関数(ASCIIから整数へ)とその相対関係、atol
とatoll
なども確認できます。
また、逆のことを行う関数、つまりitoa()
とcoもあります。
this site の準拠ソリューションを確認することをお勧めします。
あなたが試すことができます:
int intval;
String stringval;
//assign a value to intval here.
stringval = String(intval);
これでうまくいくはずです。