web-dev-qa-db-ja.com

整数を文字列Cに解析

Cで整数をstring(char* || char[])に解析するにはどうすればよいですか? Java CのInteger.parseInt(String)メソッドに相当するものはありますか?

19
Paradius

整数を文字列に変換したい場合は、関数snprintf()を試してください。

文字列を整数に変換したい場合は、関数sscanf()またはatoi()またはatol()を試してください。

47
jpalecek

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/ を参照してください。

15
Colin

文字列があり、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を返します。

10

これは、Steve SummitのC FAQの 議論 です。

2
vinc456

Java parseInt()関数は文字列を解析して整数を返します。同等のC関数はatoi()ですが、これは質問の最初の部分です。整数から文字列に、または文字列から整数に変換しますか?

1
Greg Hewgill

atoi()関数(ASCIIから整数へ)とその相対関係、atolatollなども確認できます。

また、逆のことを行う関数、つまりitoa()とcoもあります。

1

this site準拠ソリューションを確認することをお勧めします。

0
anon

あなたが試すことができます:

int intval;
String stringval;
//assign a value to intval here.
stringval = String(intval);

これでうまくいくはずです。

0
SuperKael