Если вы разделяете строку в Lua, вы должны попробовать методы string.gmatch () или string.sub (). Используйте метод string.sub (), если вам известен индекс, который вы хотите разбить на строку, или используйте string.gmatch (), если вы проанализируете строку, чтобы найти местоположение для разделения строки на.
Пример использования string.gmatch () из Справочное руководство Lua 5.1 :
t = {}
s = "from=world, to=Lua"
for k, v in string.gmatch(s, "(%w+)=(%w+)") do
t[k] = v
end
Как насчет следующего:
int coluna(int sz, int tabuleiro[sz][sz])
{
int i, j, k, m;
i= 0;
m= sz;
while (i<m) {
int allzeroes= 1;
for (j=0; j<sz; j++) {
if (tabuleiro[i][j]!=0) {
allzeroes= 0;
break;
}
}
if (allzeroes) { // col i is all zeroes
// move all remaining cols down 1 col
for (j=i; j<m-1; j++)
for (k=0; k<sz; k++)
tabuleiro[j][k]= tabuleiro[j+1][k];
// zero last column
for (k=0; k<sz; k++)
tabuleiro[m-1][j]= 0;
// new last col that is not zero
m--;
}
else i++;
}
return 1;
}
Как насчет этого (комментарии объясняют код):
void coluna(int size, int board[size][size]){
int not_zeros[size]; // Use to save the index of columns that contain at
// least one number different than zero.
int i, j;
for(i=0; i<size; i++){
not_zeros[i] = -1; //initialize the array.
for (i=0; i<size; i++){
int foundNotZero = 0;
for (j=0; j<size; j++){
if(board[j][i] != 0){ //line j, column i.
foundNotZero = 1;
break;
}
}
if (foundNotZero == 1){ //at least one element of the column i is not zero.
not_zeros[i] = i;
}
}
int start = 0;
for(i=0; i<size; i++){
if (not_zeros[i] >= 0){ //copy column i to column start.
for(j = 0; j<size; j++){
board[j][start] = board[j][not_zeros[i]];
}
start++; //increment start.
}
}
for(i=start; i<size; i++){
for(j=0; j<size; j++){
board[j][i] = 0; //fill the remaining columns with zeros.
}
}
}