将vector中的字符转换为整数.坚强,需要帮助

C++ converting character in vector to an integer...tough, need help?

本文关键字:坚强 帮助 整数 vector 字符 转换      更新时间:2023-10-16

我有:

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",并且您必须告诉他们它是否匹配预期的输出。

因此,在这种情况下,"预期输出"将是someevector,它的所有空格都是1。我要做的是将这两个向量相减,这样,如果用户输入的不是X,则向量相减不等于0,从而导致程序执行不同的操作。

希望这能澄清一切!

如果我正确理解你的代码,你正试图将表示十进制数的字符串转换为整数。有几种方法可以做到;例如,通过使用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) {

如果我错了你想做的事情,请澄清你想做什么…

我不知道你想从你的声明中做什么问题。表达式userInput[position]不合法,因为userInput不是指针,也不是任何可以转换为指针的对象指针。

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