0
ランダムに生成されたcharの2Dベクトルをintに変換しようとしています。たとえば、文字が 'abc'の場合、intベクトルが'97,98,99 'などになるようにします。(C++)2DベクトルChar to Int
私はここで調べようとしましたが、ほとんどの場合、文字列をcharなどに変換する。
これはこれまでの説明です。
#include <vector>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;
int main()
{
vector<vector<char> > vec(100, vector<char>(10));
vector<vector<int> > intVec(100, vector<int>(10));
srand(time(NULL));
int intAscii = 0;
// Fill 2D vector with random chars
for(int i = 0; i < 1; i++)
{
rand_num = (rand() % 8 + 3);
for(int j = 0; j < rand_num; j++)
{
//logic here... randomly gen a char and place it in the same position, but this time in the int vector as an int.
vec.at(i).push_back((rand() % 26 + 97));
intAscii = int(vec.at(i).at(j));
intVec.at(i).push_back(intAscii);
}
// Print Contents & print out the int vector.
for(int i = 0; i < vec.size(); i++)
{
for(int j = 0; j < vec.at(i).size(); j++)
{
cout << vec.at(i).at(j);
cout << intVec.at(i).at(j);
}
}
}
私はに実行しています問題は、それが両方のベクトルを出力したときにint型のために、私はゼロの全体の束を取得しています、文字は、罰金であるということです。 int(vec.at(i).at(j))
が機能します。つまり、charベクトルがa
の場合、intベクトルは97
となります。この時点で
、私の推測では、int型のベクトルの構文が間違っているかもしれないということです...
は助けてくれてありがとう!
なぜ100個のサイズのベクターがあり、まだpush_back()を使用していますか? –
私はあなたの例で何をしようとしているのか分かりませんが、間違った方向に進むように感じています。空のベクトルから始め、それに物を追加します。 2つのベクトルは必要ありません。文字を非常に簡単に整数として出力できます。 'a'を使用している場合は、魔法の数字を使用しないでください。 https://ideone.com/Jg3yLQ –
@RetiredNinja申し訳ありませんが、私はより明確にすべきでした。そのサイズのchar配列があるのは、3〜10の列サイズから100ワードの2次元配列を生成する必要があるからです。 – h7779