如何添加或减去数组的一部分?

时间:2019-05-01 09:44:59

标签: c++ arrays math

我一直在尝试将数组中的第一个整数添加到第二个整数,但是我得到的只是随机字母。我该怎么办?

我尝试过。

firstArray[1] = firstArray[1] + firstArray[0];
firstArray[1] = FirstArray[0];

这很好用,但我似乎无法将两个数字相加或相减。

#include <iostream>
#include<string>
#include<vector>
#include<fstream>
using namespace std;

string firstArray = {0,0, '/', 0, 0, '/', 0, 0};
int main(){

  cout << firstArray <<endl;
  firstArray[1] = firstArray[0]; //this works
  cout << firstArray << endl;
  cout << firstArray <<endl;
  firstArray[1] = firstArray[0] + firstArray[1]; //this is the bit that doesn't work
    firstArray[1] = firstArray[1] + firstArray[0]; //neither does this

  cout << "thanks guys :)" <<endl;

  return 0;
}

3 个答案:

答案 0 :(得分:1)

std::vector<int>用于整数数组。我看到问题中的代码使用string;这是不正确的-string用于字符串。

#include <iostream>
#include <vector>

std::vector<int> firstArray = {3, 4, 42, 69};

int main(){

  std::cout << firstArray[0] << '\n';
  std::cout << firstArray[1] << '\n';
  firstArray[1] = firstArray[0]; //this works
  std::cout << firstArray[0] << '\n';
  std::cout << firstArray[1] << '\n';
  firstArray[1] = firstArray[0] + firstArray[1]; //this works
  std::cout << firstArray[0] << '\n';
  std::cout << firstArray[1] << '\n';
}

答案 1 :(得分:1)

如果您以字符串形式接收输入,则可以将前两位数字转换为整数,然后将它们加起来。

std::string str = "00/00/00";

int n1 = std::stoi(str.substr(0, 1));
int n2 = std::stoi(str.substr(1, 2));

int s = n1 + n2;

std::cout << s;

答案 2 :(得分:1)

C ++中的字符在内部表示为整数,但具有范围。我认为,给您带来的困惑是,如果您在双引号中写入整数,则不能将其用作整数,而应该认为它是一个字符。

但是,如果要使用整数,则需要整数数组,如果要将输入作为字符串,则必须解析这些字符串以使它们成为整数。

为此,您可以使用stoi转换为整数,使用stod将其转换为双精度,并且可以通过包含<string>和{{1}来使用这两个函数} namespace