Чтобы инициализировать целое число GMP из строки в C ++, вы можете использовать libgmp++
и непосредственно использовать конструктор:
#include <gmpxx.h>
const std::string my_number = "12345678901234567890";
mpz_class n(my_number); // done!
Если вам все еще нужен необработанный тип mpz_t
, скажите n.get_mpz_t()
.
В Си вы должны изложить это так:
#include <gmp.h>
const char * const my_number = "12345678901234567890";
int err;
mpz_t n;
mpz_init(n);
err = mpz_set_str(n, my_number); /* check that err == 0 ! */
/* ... */
mpz_clear(n);
См. документацию для дальнейших способов инициализации целых чисел.