Как мне добавить или вычесть части массива? - PullRequest
0 голосов
/ 01 мая 2019

Я пытался добавить первое целое число в моем массиве ко второму, однако все, что я продолжаю получать, это случайные буквы. Что мне делать?

Я пробовал.

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 ]

1 голос
/ 01 мая 2019

Если вы получили ввод в виде строки, вы можете преобразовать первые 2 цифры в целые числа, а затем сложить их.

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;
1 голос
/ 01 мая 2019

Символы в C ++ внутренне представлены как целые числа, но у них есть диапазон. Я думаю, что путаница для вас заключается в том, что если вы пишете целые числа в двойных кавычках, вы не можете использовать это как целое число, а должны думать, что это символ.

Однако, если вы хотите работать с целыми числами, вам нужен массив целых чисел, и если вы хотите, чтобы входные данные были в виде строк, то вам нужно проанализировать эти строки, чтобы сделать их целыми числами.

Для этого вы можете использовать stoi для преобразования в целые числа и stod для преобразования их в двойные, и обе эти функции можно использовать, включая <string> и namespace std.

1 голос
/ 01 мая 2019

Используйте 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';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...