0
임의로 생성 된 char의 2D 벡터를 int로 변환하려고합니다. 예를 들어 chars가 'abc'인 경우 int 벡터가 '97, 98,99 '등이됩니다.(C++) 2D 벡터 Char에서 Int
여기에서 살펴 보았는데 대부분 사람들은 숯에 대해 묻습니다. 문자열 등.
이것은 내가 지금까지 가지고있는 것이다.
#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);
}
}
}
내가으로 실행하고 문제는 두 벡터를 출력 할 때 인터넷 용 I이 제로의 전체 무리를 얻고, 문자가 좋은 것입니다. 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