¿Cómo puedo convertir el n-ésimo carácter de la cadena en número? Tengo un número largo expresado como cadena y me gustaría hacer una matriz de él, donde cada carácter sería un número separado. Lo he intentado con el fragmento de código seguido:n-ésimo carácter de la cadena 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;
}
Pero no funciona.
Sí, eso es todo. Gracias. ¿Podría explicar qué hace "- '0'" hacer? – user1626154
'0' es 48 en [ASCII] (http://www.asciitable.com/index/asciifull.gif), mientras que '1' es 49, por lo que '1' - '0' es una simple resta matemática, ' 49 - 48', que resulta en 1. Lo mismo se aplica a todos los demás dígitos. – jweyrich
@ user1626154 convierte la representación ASCII del número a su equivalente decimal. '0' es 48 en decimal, por lo que al restar '0' se obtiene el valor decimal 0, y así sucesivamente para los otros dígitos. – DaV