The s
specification is for reading characters into an array.
In normal use, the s
specification tells scanf
to skip over
any following whitespace characters and to read the characters up to the
next whitespace:
char input_buffer[100]; scanf ("%s", input_buffer); printf ("The author's login name is %s.\n", input_buffer); --- Data --- phw is the author's login name. --- Result --- The author's login name is phw.
Note that scanf
appends the null character, \0
, to the
characters actually read. Hence, the character array must be big enough to
accommodate the characters in the input string plus an additional character.
Note also that you can supply a modifying number with the s
read
specification, in which case, after skipping any whitespace, scanf
reads the input string until that number of characters have been read, or
whitespace is encountered, or the end of a file is encountered:
char input_buffer[100];