Jak mogę przekonwertować n-tą ciąg znaków na liczbę? Mam długą liczbę wyrażoną jako napis i chciałbym ją utworzyć, gdzie każda postać byłaby oddzielną cyfrą. Próbowałem z następującym kodem:nth znak ciągu znaków na int
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string str ="73167176531330624919225119674426574742355349194934969835203127745063262395783180169848018";
int ints[1000] = {0};
for (int i = 0; i < str.size(); i++)
{
istringstream ss(str[i]);
ss >> ints[i];
}
cout << ints[9] << endl;
return 0;
}
Ale to nie działa.
Tak, to jest to. Dziękuję Ci. Czy mógłbyś wyjaśnić, co robi "-" 0 ""? – user1626154
"0" to 48 w [ASCII] (http://www.asciitable.com/index/asciifull.gif), natomiast "1" to 49, więc "1" - "0" to proste odejmowanie matematyczne, ' 49 - 48', co daje 1. To samo dotyczy wszystkich innych cyfr. – jweyrich
@ user1626154 Konwertuje reprezentację ASCII liczby na jej dziesiętny odpowiednik. "0" wynosi 48 w systemie dziesiętnym, więc odjęcie "0" daje wartość dziesiętną 0, i tak dalej dla pozostałych cyfr. – DaV