C++ C++;字符向量加法

C++ C++;字符向量加法,c++,vector,C++,Vector,这是我正在编写的程序的一部分,用于计算两个整数作为字符串的相加。(编写我自己的bigInt类) 当我将两个整数相加时,似乎出现了问题。因为它们都在char类型的向量中,所以我必须在向量的每个元素中添加一个'0',然后再将其连接到字符串中 然而,结果仍然不是我所期望的: #包括 #包括 #包括 使用名称空间std; int main() { 字符串常量Number=“1000”; 字符串常量Number2=“1000”; 矢量反转; 载体逆转2; //请不要格式化你的代码哦,我的错。对不起。@W

这是我正在编写的程序的一部分,用于计算两个整数作为字符串的相加。(编写我自己的bigInt类)

当我将两个整数相加时,似乎出现了问题。因为它们都在
char
类型的向量中,所以我必须在向量的每个元素中添加一个
'0'
,然后再将其连接到字符串中

然而,结果仍然不是我所期望的:

#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串常量Number=“1000”;
字符串常量Number2=“1000”;
矢量反转;
载体逆转2;

//请不要格式化你的代码哦,我的错。对不起。@WhozCraig,谢谢你编辑我的问题。每次你发布一个文本终端的图像,上帝就会杀死一只小猫。而且,字符并不等于它们所代表的数字。
'1'+'2'!='3'
。你需要弄清楚如何从
'1'
转换到
1
,然后再转换回来。
()
参见Cppreferences@n.m.我意识到了我的错误。我把我想要的ASCII值,而不是整数值推到向量
reverse
。因此,我需要减去
'0'
,得到我需要的整数值进行加法。然后再将其转换回ASCII等效值。
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
    string const Number = "1000";
    string const Number2 = "1000";
    vector<char> reverse;
    vector<char> reverse2;

    //cout << (rostrNumber[1] - '0') << endl;
    cout << "Original Number: " << Number << endl;
    reverse.clear();
    for (int i = Number.size() - 1; i >= 0; i--)
    {
        reverse.push_back(Number[i]);

    }
    cout << "Reversed: " << endl;
    cout << reverse[0] << reverse[1] << reverse[2] << reverse[3] << endl;
    cout << endl << endl;

    reverse2.clear();
    {
        for (int i = Number2.size() - 1; i >= 0; i--)
        {
            reverse2.push_back(Number[i]);
        }
    }

    cout << "Adding these two integers" << endl;

    vector<char> const rcvN1 = reverse;
    vector<char> const rcvN2 = reverse2;
    vector<char> Results;

    Results.clear();

    //Local copies
    vector<char> vN1 = rcvN1;
    vector<char> vN2 = rcvN2;
    int iSize1 = vN1.size();
    int iSize2 = vN2.size();
    int i, iSize = iSize2;

    int iC = 0, iR;
    for (i = 0; i<iSize; i++)
    {
        iR = vN1[i] + vN2[i] + iC;

        if (iR > 9)
        {
            iR -= 10;
            iC = 1;
        }
        else
            iC = 0;

        Results.push_back(iR);
        cout << Results[0] << endl;
    }

    if (iC > 0)
        Results.push_back(iC);

    string ostr;
    vector<char>::const_reverse_iterator rIter = Results.rbegin();
    for (; rIter != Results.rend(); rIter++)
        ostr += *rIter +'0';

    cout << "Results: " << ostr << endl;

    system("PAUSE");
    return 0;
}