Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中数组值的不正确_C++_Arrays_Visual Studio - Fatal编程技术网

C++中数组值的不正确

C++中数组值的不正确,c++,arrays,visual-studio,C++,Arrays,Visual Studio,我已经在这里工作了两个多小时了。我已将我的问题隔离到一段代码中 问题在于我的数组。它输出的是非常大的负值。我输入到数组中的值是正确的。我对java很有经验,但这是我的第一个C++程序。 #include <cstdlib> #include <iostream> #include <sstream> #include <string> using namespace std; int main(){

我已经在这里工作了两个多小时了。我已将我的问题隔离到一段代码中

问题在于我的数组。它输出的是非常大的负值。我输入到数组中的值是正确的。我对java很有经验,但这是我的第一个C++程序。
   #include <cstdlib>
   #include <iostream>
   #include <sstream>
   #include <string>

   using namespace std;

   int main(){
    string inputString;
    cin >> inputString;
    cout << inputString << endl;

    int mainArray[10];

    for(int x = 0; x < inputString.length(); x++){
        int valFound = inputString[x]-48; //minus 48 to change from ascii to int
        mainArray[valFound]++;
        cout << mainArray[valFound];
    }

    return 0;
    }

任何帮助都将不胜感激,这让我发疯。

您的阵列正在默认初始化。int类型的默认初始化会留下垃圾。您需要将其显式初始化为0:

int mainArray[10] = {0};

这是因为数组需要初始化。将此添加到您的代码中:

for (int i = 0 ; i != 10 ; i++) {
    mainArray[i] = 0;
}
或者,您可以使用memset:


int mainArray[10]={0};初始化数组。此外,inputString[x]-“0”更便于携带。@请DanielFisher或SamFrench回答!这很有效。我发誓我以前试过,但我想没有。非常感谢。传统的C!总是很好:
memset(mainArray, 0, sizeof(mainArray));