在数组中存储元素时出错

error in storing elements in array

本文关键字:出错 元素 存储 数组      更新时间:2023-10-16

我正在尝试将字符串类型的数字存储到2D数组中。当将字符串存储为数字时,它根本不存储字符串,而是显示0000

while(m<sm)             /*storing string into integer array */
 {
    if(isdigit(input4[m]))      /* string to 2D array conversion*/
    {
        K=input4[m]-'0';
        K1=input4[m+2]-'0'; // changed from m+1 to m+2
        cout<<K<<"t"<<K1;
       arr[K][K1]=2;
    cout<<"n";
    }
    m++;
 }
 for(int i =0; i<input1 ;i++){
    for(int j =0;j<input2;j++){
        cout<<arr[i][j];
    }
    cout<<endl;
 }

输入:2,1,2,2,3,2,2,2,3,2,3,3,3,1,3

输出:2 11-42 22-43 22-42 22-42 33-42 33-43 33-41 33-70000000101110011

我的问题是第二栏是什么?它应该是:2 12 23 2等等,因为这些是K和K1的值。我想把字符串形式的元素存储到2D阵列中,通过讨论两个规则元素a矩阵的坐标,然后我想在坐标K和K1处存储1。它只在6个坐标上存储1,但根据输入必须在8个坐标上。

问题是K1是负的(正如您所看到的),这意味着您对arr[K][K1]的访问是越界的。很明显,input4[m + 1]不是数字,它似乎是分隔数字的逗号。