Bird
Raised Fist0
Cprogramming~15 mins

String input and output in C - Mini Project: Build & Apply

Choose your learning style10 modes available
String input and output
📖 Scenario: You are creating a simple program that asks a user for their name and then greets them.
🎯 Goal: Build a program that reads a user's name as input and then prints a greeting message including that name.
📋 What You'll Learn
Use char name[50]; to store the user's name
Use scanf to read the name from input
Use printf to display the greeting message
💡 Why This Matters
🌍 Real World
Reading and displaying text input is a basic skill used in many programs like user registration, chat apps, and command-line tools.
💼 Career
Understanding string input/output in C is essential for system programming, embedded systems, and software development roles.
Progress0 / 4 steps
1
Create a character array to store the name
Declare a character array called name with size 50 to hold the user's name.
C
Hint

Use char name[50]; inside main() to create space for the name.

2
Read the user's name using scanf
Use scanf with "%49s" to read the user's name into the name array.
C
Hint

Use scanf("%49s", name); to safely read a string into name.

3
Print a greeting message with the name
Use printf to display the message Hello, <name>! where <name> is the value stored in name.
C
Hint

Use printf("Hello, %s!\n", name); to show the greeting with the user's name.

4
Run the program and display the greeting
Run the program and enter the name Alice when prompted. The program should print Hello, Alice!.
C
Hint

Type Alice as input and check that the output is Hello, Alice!

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