%s continua a leggere finché non trova qualche carattere di whitespace (in generale uno spazio o un \n), se vuoi che si fermi al ; usa uno scanset, %[^;]