入力されたstring型の数列に対して、一桁ずつ(0~9の範囲で)計算処理したかったのでその方法を自分用に簡易メモ。
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string str; //今回は15文字入力と予めわかっている
int N[15];
cin >> str;
for (int i = 0; i < 15; ++i) {
N[i] = (int)(str[i] - '0'); //str[i] はchar型なのでchar→intへ変換
cout << N[i] << endl; //確認のため表示
}
return 0;
}
ちなみに数列内に文字が混在している時は、0~9以外の数値を無視する、などで除外することができるのではないでしょうか。
##追記(2017/01/15)
SaitoAtsushi さんから頂いたコメントで、transformという関数が使えることがわかったので、試してみました。
#include <iostream>
#include <string>
#include <algorithm> //新たにインクルード
using namespace std;
int main(void) {
string str;
int N[15];
cin >> str;
transform(begin(str), end(str), N, [](char c) {return c - '0'; });
for (int i = 0; i < 15; ++i) {
cout << N[i] << endl; //確認用
}
return 0;
}
この方法でも同様の結果が得られました。ありがとうございました。