我正在尝试将字符串类型的数字存储到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;
}
INPUT: 2,1,2,2,3,2,2,2,2,3,2,3,3,3,1,3
输出: 2 1 1-4 2 2 2 -4 3 2 2 -4 2 2 2 -4 2 3 3 -4 2 3 3 -4 3 3 3 -4 1 3 3-7 0000 0001 0111 0011
我的问题是第二列是什么?它应该是: 2 1 2 2 3 2 等等,因为它们是K和K1的值。我想通过将两个常规元素与矩阵的坐标对话,将字符串形式的元素存储到2D数组中,然后我想在坐标K和K1处存储1。它仅在6个坐标上存储1,但必须按照输入在8个坐标上。
答案 0 :(得分:0)
问题在于K1是否定的(如您所见),这意味着您拥有arr[K][K1]
的越界访问权限。显然input4[m + 1]
不是数字,它似乎是用你的数字分隔的逗号。