Use the following formats with printf.
%c
              
              Write a single character.  For example, if variable
              c has type char and value 'Z', then
  printf("%c", c);
              writes Z.
              
              If you write an integer with format %c, you get the character with that code. For example, the code for 'a' is 97, and 
  printf("%c", 97);
                writes a.
              
              
             | 
          
%s
              
              Write a null-terminated string (without the null character).
              For example, if s is a variable of type char*
              and s points to string "camel", then
  printf("My pet %s is named Flower\n", s);
              writes
My pet camel is named Flower  | 
          
Use the following formats with scanf.
%c
              
              Read a single character.  For example,
  char ch;
  scanf("%c", &ch);
              reads one character and stores that character into ch.
              If you want to read the next non-white-space character,
              put a space in front of %c.
  char ch;
  scanf(" %c", &ch);
              
             | 
          
%s
              
              Read a string.  Statement
  char s[100];
  scanf("%s", s);
              skips over white space (if any), then reads characters
              up to a white space character or the end of the input,
              storing the characters into array s.  It adds
              a null character to the end.
              
              Warning. Do not write 
  char* s = new char[100];
  scanf("%s", &s);
                Format %s wants the address of an array, not the address
                of a variable that points to an array.
              
              
              Warning. The %s format does not allocate memory. Statements 
  char* s;
  scanf("%s", s);
                fail to initialize s.  That makes scanf store characters
                at a memory address that is a 
                dangling pointer.
              
              
              Warning. Reading strings using %s is dangerous. If the string in the input is too long, scanf will store characters outside of the array. See %ms.  | 
          
%ms
              
              Read a string.  Statement
  char* s;
  scanf("%ms", &s);
              is similar to the same thing with %s, but %ms allocates
              enough memory to hold the string that it reads, and
              stores a pointer to the newly allocated array into s.
              Notice that, in this case, you do want &s.  The parameter
              corresponding to %ms must have type char**.
              
              The memory is allocated using malloc. To delete the array, use free(s);  | 
          
%m[A-za-z]
              
              This is similar to %ms, but it omits skipping over initial white space
              and reads a string consisting of zero or more letters.  You can list
              individual characters, as in [aeiou], and can give character ranges, such
              as a-z.  For example,
  char* p;
  scanf("%m[a-z], &p);
              reads a string of lower-case letters.
              
             | 
          
%m[^A-za-z]
| The ^ character means anything except these. So you get a string of nonletters. |