#arrays #c #string
Вопрос:
Учитывая строку : "A,B,Cn1,2,3n,4,9,6"
как я могу преобразовать ее в этот 2D-массив (в C)?
[A B C 1 2 3 4 9 6]
Я думал подсчитать количество строк (проверив, сколько n
s 1), затем подсчитать количество столбцов (проверив, сколько ','
их 1), а затем выделить 2D-массив. А затем поместить значения в массив.
Есть ли какой-нибудь способ сделать это более эффективным способом? потому что я много раз повторяю одну и ту же строку.
Комментарии:
1. Гарантируется ли, что все строки матрицы будут одинаковой длины?
2. 2 проход безопасен и прост — проход (1) проверяет, что строки имеют одинаковую длину (фиксированное количество столбцов), и подсчитывает количество необходимых строк. Pass (2) заполняет 2D-массив, используя вышеуказанную информацию.
3. Да, все строки одинаковой длины @Botje. Спасибо
4. Вы можете найти эту
strtok
функцию (илиstrtok_r
, если она доступна) полезной.5. @RichardCritten из текста ( «…в этот 2D массив (в C):» ) он, по-видимому, хочет C.