Convertir une chaîne en un tableau d'entiers?

Je suis un débutant en C++ et ne peut pas comprendre cela. Tout simplement que la question dit, si j'ai une chaîne de caractères (un certain nombre), comment puis-je convertir chacun des chiffres d'un entier et de les mettre chacun dans un tableau d'entiers?

C'était ma tentative:

std::string stringNumber = "123456789"; //this number will be very large

int intNumber[stringNumber.length()];

for (int i = 0; i < stringNumber.length(); i++) 
{
    intNumber[i] = std::atoi(stringNumber[i]);
    std::cout << intNumber[i] << std::endl;
}
std::atoi() prend un pointeur vers C-string et convertit la totalité de la séquence en un entier. Ce que vous voulez est de convertir chaque chiffre dans un int. Vous pouvez calculer le int valeur d'un chiffre d à l'aide de d - '0'.
Notez qu'en C++, vous pas l'utilisation int intNumber[stringNumber.length()]! C++ ne prend pas en charge longueur variable tableaux. Si vous souhaitez utiliser un tableau de taille variable en C++, vous pouvez utiliser std::vector<int> intNumber(stringNumber.length());.
Affirment, en outre, chaque caractère d'entrée est à l'intérieur ['0'..'9']. L'expression 'a' - '0', par exemple, est parfaitement valide, et plus certainement pas ce que vous voulez. Valider la chaîne d'entrée tout en marchant, il pour assurer les caractères sont, en fait, des chiffres.

OriginalL'auteur AaronAAA | 2012-12-22