SA-MP Forums Archive
как узнать размер строки в массиве? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: как узнать размер строки в массиве? (/showthread.php?tid=422562)



как узнать размер строки в массиве? - x_O - 14.03.2013

есть такой массив:

pawn Код:
new a[][] = {
        {1, 2, 3, 4},
        {5,6,7,8,9,10,11,12,13,14,15},
        {16,17}
    };
Как узнать с помощью оператора sizeof размер (количество столбцов) нужной строки?


Re: как узнать размер строки в массиве? - Alexander_Petrov - 14.03.2013

Quote:
Originally Posted by x_O
Посмотреть сообщение
есть такой массив:

pawn Код:
new a[][] = {
        {1, 2, 3, 4},
        {5,6,7,8,9,10,11,12,13,14,15},
        {16,17}
    };
Как узнать с помощью оператора sizeof размер (количество столбцов) нужной строки?
Никак, размер для всех строк одинаковый.


Re: как узнать размер строки в массиве? - x_O - 14.03.2013

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
Никак, размер для всех строк одинаковый.
Есть альтернативные варианты? Не обязательно через sizeof ... Мне надо узнать сколько цифр в нужном поле ...


Re: как узнать размер строки в массиве? - Alexander_Petrov - 14.03.2013

Quote:
Originally Posted by x_O
Посмотреть сообщение
Есть альтернативные варианты? Не обязательно через sizeof ... Мне надо узнать сколько цифр в нужном поле ...
Или циклом, или записывать количество в отдельный массив, или в этот же самый первым числом, пример последнего ниже.
pawn Код:
new a[][] = {
    {4, 1, 2, 3, 4},
    {11, 5,6,7,8,9,10,11,12,13,14,15},
    {2, 16,17}
};
Причем первое число также является номером ячейки последнего. Необходимо еще не забывать, что сами числа теперь будут начинаться с 1 ячейки.


Re: как узнать размер строки в массиве? - x_O - 14.03.2013

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
Или циклом, или записывать количество в отдельный массив, или в этот же самый первым числом, пример последнего ниже.
pawn Код:
new a[][] = {
    {4, 1, 2, 3, 4},
    {11, 5,6,7,8,9,10,11,12,13,14,15},
    {2, 16,17}
};
Причем первое число также является номером ячейки последнего. Необходимо еще не забывать, что сами числа теперь будут начинаться с 1 ячейки.
спасибо


Re: как узнать размер строки в массиве? - AirKite - 14.03.2013

Или например если в ячейках не будут использоваться нули, то можно в каждый конец добавить EOS и получать количество через strlen.

pawn Код:
//
new a[][] = {
    {1, 2, 3, 4, EOS},
    {5,6,7,8,9,10,11,12,13,14,15, EOS},
    {16,17, EOS}
};
   
    //strlen(a[2]) вернёт 2
Способ будет удобнее тем, что не придётся каждый раз править первую цифру.