Обработка пробелов с помощью функции scanf () в C

У меня есть следующая проблема. Я хотел бы сканировать три точки из scanf в следующем формате: {[4;-1],[7;1.5],[4;4]} . Мой код выглядит так:

scanf("{[%lf;%lf],[%lf;%lf],[%lf;%lf]}", &a1, &a2, &b1, &b2, &c1, &c2)

Теперь я фактически проверяю, чтобы это было правильным преобразованием для дальнейшей работы с ним. Но я хотел бы позволить пользователю вводить что-то вроде этого

{ [ 4 ; -1 ] , [ 7 ; 1.5 ] , [ 4 ; 4 ] }

или даже

  { [ 4 ; -1 ] , [ 7 ; 1.5 ] , [ 4 ; 4 ] } 

поэтому scanf () все еще может дать мне 6 правильных конверсий. Что я должен делать?

Чтобы разрешить пробелы, пробел перед каждым небелым пространством.

 // "{[%lf;%lf],[%lf;%lf],[%lf;%lf]}" " { [%lf ;%lf ] , [%lf ;%lf ] , [%lf ;%lf ] }" 

Код также может добавить пробел перед "%lf" , но это не изменяет функциональность, поскольку этот спецификатор уже потребляет дополнительное ведущее белое пространство.

 " { [ %lf ; %lf ] , [ %lf ; %lf ] , [ %lf ; %lf ] }"