2012-04-21 13 views
0

私はPython/C APIを使用しており、Pythonのlong整数引数nPyLongを使用し、それをchar配列、nString(基数10)に変換したいと考えています。私がしたいことのスニペットです。Python long integerをCのchar配列に変換する

PyObject *nPyLong; 
PyArg_ParseTuple(args, "O", nPyLong); 

PyLong_Check(nPyLong) // returns true 

const char *nString; 
// This function doesn't exist but demonstrates the functionality 
PyLong_AsCharArray(&nString, nPyLong, 10); 

APIリファレンスは任意の塩基所与Pythonの長整数のC文字列を、変換関数PyObject* PyLong_FromString(char *str, char **pend, int base)に言及したが、私は逆を行う機能を見つけることができません。

これは可能ですか? 1つのアイデアは、Pythonの長い整数をPythonの文字列オブジェクトに変換してからCのchar配列に変換することですが、long intを処理する文字列関数もありません。 CでPythonのlong intを扱う唯一の方法は、Cのint型に変換することです。すべてがアプリケーションでオーバーフローします。

答えて

2

PyObject_Str()(またはPyObject_Bytes())を使用して、char*に変換します。

+0

うわー、これは私が思ったよりずっと簡単です。そしてそれは接尾辞 'L'を返さない! – Vortico

関連する問題