2017-06-07 21 views
2

如何將一個(非常長的字符串)模數string="45345543534545623243464534545645"轉換爲int。我試過stoi(string)%someno。但編譯器顯示「超出範圍」錯誤。(非常長的字符串)模數到int cpp

+0

你想要這個轉換的結果是什麼? –

+2

你不能從一個字符串中取出一個模塊,並且你不能讓C++自己做,因爲它不能用這麼大的數字來操作。它看起來像你需要使用[bignum運算](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) - 第三方類或自己寫。 –

+0

請首先閱讀關於整數和字符串 – Nilabja

回答

1

自己逐個處理字符串。說模數是m。

開始int firstDigit = firstLetter-'0';設置xfirstDigit % m

雖然還有數字,請重複nextDigit = nextLetter-'0'; 並計算x = (x*10 + nextDigit)% m

+0

我可以使用stoi(string [i])而不是firstletter - '0' – MngT