C ++将向量中的字符转换为整数......很难,需要帮助吗?

时间:2011-11-10 08:29:02

标签: c++

这就是我所拥有的:

char userInput;
int position;
vector<string> userVector(7);
vector<int> someVector(7,1);

cin >> userInput;
cin >> position;

if(userInput == 'X')
   userVector[position] = '1';

if(userVector[position]-someVector[position] == 0)
   cout << "Success"

我的问题是userVector[position]实际上是一个字符,因为userVector是一个字符串向量。但是,我需要进行此计算(userVector[position] - someVector[position]),因为我需要确定结果是0还是其他数字。有什么帮助吗?

如果在这里没有意义,userVector必须是一个字符串向量,因为它是该程序要求的一部分。基本上,应该允许用户在userVector向量中的任何位置输入“X”,并且必须告诉他们它是否与预期输出匹配。

因此,在这种情况下,“预期输出”将是someVector,它在所有空格中都有1。我要做的是减去两个向量,这样如果用户输入除X之外的任何东西,向量减法将不等于0,从而导致程序执行不同的操作。

希望能够解决问题!

2 个答案:

答案 0 :(得分:1)

如果我理解你的代码,你试图将表示十进制数的字符串转换为整数。你有几种方法可以做到这一点;例如,使用istringstream

int num;
if (!(istringstream(userInput[position]) >> num))
    num = 0;
if (n - someVector[position] == 0) {
   ...

或者你可以使用好的atoi

if (atoi(userInput[position].c_str()) - someVector[position] == 0) {

如果我对你要做的事情有误,请澄清你想要做的事情......

答案 1 :(得分:0)

我无法弄清楚你在发表的声明中想要做些什么 问题。表达式userInput[position]不合法,因为 userInput不是指针,也不是任何可以转换为a的指针 指针。

但您的代码似乎与文字描述不符, 因为您将userInput描述为字符串向量 (std::vector<std::string>?),但代码将其声明为char