Well bookname surly is some kind of char ;-)
Point is that scanf in this form stop on the first whitespace character.
You can use a different format string, but in this case, one probably should prefer using fgets.
scanf really should be used for "formatted" input.