Bird
Raised Fist0
Cprogramming~5 mins

String input and output in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What function is commonly used in C to read a string from the user?
The scanf function is commonly used to read strings from the user in C, often with the format specifier %s.
Click to reveal answer
beginner
How do you print a string stored in a variable in C?
Use the printf function with the format specifier %s to print a string variable, for example: printf("%s", str);
Click to reveal answer
intermediate
What is a safe way to read a string input to avoid buffer overflow?
Use fgets instead of scanf to read strings safely by specifying the maximum number of characters to read, e.g., fgets(str, sizeof(str), stdin);
Click to reveal answer
intermediate
What happens if you use scanf("%s", str); and the input is longer than the buffer?
It causes a buffer overflow, which can overwrite memory and lead to crashes or security issues because scanf does not limit input length.
Click to reveal answer
beginner
How do you declare a string variable in C?
A string in C is an array of characters ending with a null character \0. For example: char str[100]; declares a string that can hold up to 99 characters plus the null terminator.
Click to reveal answer
Which function is safer to read a string input in C?
Afgets
Bscanf with %s
Cgets
Dprintf
What format specifier is used to print a string in C?
A%d
B%s
C%f
D%c
What does the null character \0 signify in a C string?
ASpace character
BStart of the string
CEnd of the string
DNew line
Which of these is a correct way to declare a string that can hold 50 characters?
Achar str;
Bint str[50];
Cstring str;
Dchar str[51];
What is the risk of using scanf("%s", str); without limiting input size?
ABuffer overflow
BSyntax error
CNo risk
DMemory leak
Explain how to safely read and print a string in C.
Think about how to avoid buffer overflow and how strings end in C.
You got /4 concepts.
    Describe the difference between using scanf and fgets for string input in C.
    Consider safety and how input is stored.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which function is used to read a single word string from the user in C?
      easy
      A. fgets(str, size, stdin);
      B. printf("%s", str);
      C. gets(str);
      D. scanf("%s", str);

      Solution

      1. Step 1: Understand string input functions

        scanf with "%s" reads a single word string until whitespace.
      2. Step 2: Identify correct function for single word input

        printf is for output, gets is unsafe, fgets reads whole line including spaces.
      3. Final Answer:

        scanf("%s", str); -> Option D
      4. Quick Check:

        Single word input = scanf("%s", str); [OK]
      Hint: Use scanf with %s for single word input [OK]
      Common Mistakes:
      • Using printf instead of scanf for input
      • Using fgets expecting single word input
      • Using gets which is unsafe
      2. Which of the following is the correct syntax to print a string variable str in C?
      easy
      A. printf("%d", str);
      B. printf("%s", str);
      C. scanf("%s", str);
      D. gets(str);

      Solution

      1. Step 1: Identify the print format specifier for strings

        "%s" is used in printf to print strings.
      2. Step 2: Match correct function and format

        printf with "%d" is for integers, scanf is for input, gets reads input.
      3. Final Answer:

        printf("%s", str); -> Option B
      4. Quick Check:

        Print string = printf("%s", str); [OK]
      Hint: Use printf with %s to print strings [OK]
      Common Mistakes:
      • Using %d to print strings
      • Using scanf instead of printf for output
      • Using gets for printing
      3. What will be the output of the following C code?
      #include <stdio.h>
      int main() {
          char str[20];
          scanf("%s", str);
          printf("%s", str);
          return 0;
      }

      If the user inputs: Hello World
      medium
      A. Hello
      B. Hello World
      C. World
      D. Compilation error

      Solution

      1. Step 1: Understand scanf with %s behavior

        scanf("%s", str) reads input until first whitespace, so it reads only "Hello".
      2. Step 2: Output printed by printf

        printf("%s", str) prints the stored string, which is "Hello".
      3. Final Answer:

        Hello -> Option A
      4. Quick Check:

        scanf with %s stops at space = Hello [OK]
      Hint: scanf %s reads only until space, not full line [OK]
      Common Mistakes:
      • Expecting scanf %s to read full line with spaces
      • Confusing scanf with fgets
      • Assuming output includes 'World'
      4. Identify the error in the following code snippet for reading a full line including spaces:
      #include <stdio.h>
      int main() {
          char str[50];
          scanf("%s", str);
          printf("%s", str);
          return 0;
      }
      medium
      A. char array size is too large
      B. printf("%s", str) cannot print strings
      C. scanf("%s", str) reads only until first space, not full line
      D. Missing return type for main

      Solution

      1. Step 1: Analyze scanf with %s for input

        scanf("%s", str) stops reading input at first whitespace, so it cannot read full line with spaces.
      2. Step 2: Check other parts of code

        printf("%s", str) correctly prints string, array size is sufficient, main has return type int.
      3. Final Answer:

        scanf("%s", str) reads only until first space, not full line -> Option C
      4. Quick Check:

        scanf %s stops at space, so not full line input [OK]
      Hint: Use fgets to read full line with spaces [OK]
      Common Mistakes:
      • Assuming scanf %s reads full line
      • Thinking printf can't print strings
      • Confusing array size issues
      5. How can you correctly read a full line of text including spaces into a string str of size 100 in C?
      hard
      A. fgets(str, 100, stdin);
      B. scanf("%s", str);
      C. printf("%s", str);
      D. gets(str);

      Solution

      1. Step 1: Understand functions for reading strings with spaces

        scanf("%s", str) reads only until space, gets is unsafe and deprecated.
      2. Step 2: Identify safe function to read full line

        fgets(str, 100, stdin) reads up to 99 characters including spaces safely.
      3. Final Answer:

        fgets(str, 100, stdin); -> Option A
      4. Quick Check:

        Use fgets for full line input with spaces [OK]
      Hint: Use fgets to read lines with spaces safely [OK]
      Common Mistakes:
      • Using scanf %s for full line input
      • Using gets despite safety issues
      • Confusing printf with input functions
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard