根据C中的字符串调整整数数组
Adjusting integer array based on string in C
array 应该将每对中的第一个 0 更改为字符串输入列表中的下一个数字。
代码:
{
int array[8][8][2]= {{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}};
size_t i,j,p;
char duck;
char inputList[66] = "01111011001111110110010110010100001011011000101111111000110100001";
i=0;
j=0;
for(p=0;p<strlen(inputList);p++){
if(i==7){
i=0;
}
if(j==7){
j=0;
}
duck=inputList[p];
array[i][j][0]=atoi(duck);
i+=1;
j+=1;
}
return 0;
}
returns 与 atoi 有关的错误。这是怎么回事?
错误:
passing argument 1 of ‘atoi’ makes pointer from integer without a cast
我对演员表的含义有点困惑。我觉得我为了弥补而搞砸了。
您似乎在尝试使用 atoi
来解析个位数。但是,由于 atoi
需要 C 字符串并采用 const char*
,因此您不能将普通字符传递给它。您需要向它传递一个正确终止的 C 字符串。
试试这个:
array[i][j][0]= duck-'0';
试试这个:
array[i][j][0] = duck - '0';
它使用 ASCII 码操作将 char duck
中的数字转换为整数。
array 应该将每对中的第一个 0 更改为字符串输入列表中的下一个数字。
代码:
{
int array[8][8][2]= {{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}};
size_t i,j,p;
char duck;
char inputList[66] = "01111011001111110110010110010100001011011000101111111000110100001";
i=0;
j=0;
for(p=0;p<strlen(inputList);p++){
if(i==7){
i=0;
}
if(j==7){
j=0;
}
duck=inputList[p];
array[i][j][0]=atoi(duck);
i+=1;
j+=1;
}
return 0;
}
returns 与 atoi 有关的错误。这是怎么回事?
错误:
passing argument 1 of ‘atoi’ makes pointer from integer without a cast
我对演员表的含义有点困惑。我觉得我为了弥补而搞砸了。
您似乎在尝试使用 atoi
来解析个位数。但是,由于 atoi
需要 C 字符串并采用 const char*
,因此您不能将普通字符传递给它。您需要向它传递一个正确终止的 C 字符串。
试试这个:
array[i][j][0]= duck-'0';
试试这个:
array[i][j][0] = duck - '0';
它使用 ASCII 码操作将 char duck
中的数字转换为整数。