📖 Scenario: You are working on a simple program to store and display information about a book. You will create a structure to hold the book's title and number of pages, then access and print these details.
🎯 Goal: Build a C program that defines a struct for a book with a title and page count, assigns values to its members, and prints them.
📋 What You'll Learn
Define a struct named Book with members title (string) and pages (integer).
Create a variable of type Book named myBook.
Assign the title "C Programming" to myBook.title.
Assign the number 250 to myBook.pages.
Print the book's title and page count using printf.
💡 Why This Matters
🌍 Real World
Structures help organize related data together, like storing information about books, students, or products in a program.
💼 Career
Understanding structures is essential for C programming jobs, especially in systems programming, embedded systems, and software development where grouping data logically is important.
Progress0 / 4 steps
1
Define the Book structure
Define a struct named Book with two members: title as a character array of size 50, and pages as an integer.
C
Hint
Use struct Book { char title[50]; int pages; }; to define the structure.
2
Create a Book variable and assign values
Create a variable named myBook of type struct Book. Assign the string "C Programming" to myBook.title using strcpy, and assign the integer 250 to myBook.pages. Include #include <string.h> at the top.
C
Hint
Remember to include #include <string.h> to use strcpy.
3
Access and print the structure members
Inside the main function, use printf to print the book's title and page count from myBook. Use myBook.title and myBook.pages to access the members.
C
Hint
Use printf("Title: %s\n", myBook.title); and printf("Pages: %d\n", myBook.pages); to print.
4
Run and check the output
Run the program and ensure it prints exactly: Title: C Programming Pages: 250
C
Hint
Make sure your output matches exactly, including capitalization and spacing.
Practice
(1/5)
1. Which operator is used to access members of a structure variable in C?
easy
A. Colon operator (:)
B. Arrow operator (->)
C. Double colon (::)
D. Dot operator (.)
Solution
Step 1: Understand structure member access
In C, when you have a structure variable, you use the dot operator (.) to access its members.
Step 2: Differentiate from pointer access
The arrow operator (->) is used when you have a pointer to a structure, not the structure variable itself.
Final Answer:
Dot operator (.) -> Option D
Quick Check:
Structure variable member access = dot operator (.) [OK]
Hint: Use dot (.) for struct variables, arrow (->) for pointers [OK]
Common Mistakes:
Confusing dot (.) with arrow (->) operator
Using colon (:) which is invalid in C
Using double colon (::) which is from other languages
2. Given the structure struct Point { int x; int y; } p;, which is the correct way to assign 10 to member x?
easy
A. p->x = 10;
B. p:x = 10;
C. p.x = 10;
D. p[x] = 10;
Solution
Step 1: Identify the variable type
Here, p is a structure variable, not a pointer.
Step 2: Use correct member access syntax
For structure variables, use the dot operator (.) to access members, so p.x = 10; is correct.
Final Answer:
p.x = 10; -> Option C
Quick Check:
Structure variable assignment uses dot (.) [OK]
Hint: Use dot (.) for struct variables, arrow (->) only for pointers [OK]
Common Mistakes:
Using arrow (->) with non-pointer variable
Using colon (:) which is invalid syntax
Using array-like syntax on struct members
3. What is the output of this code?
struct Person {
char name[10];
int age;
};
int main() {
struct Person p = {"Amy", 25};
printf("%s %d", p.name, p.age);
return 0;
}
medium
A. Amy 25
B. Amy 0
C. Error: cannot assign string to array
D. Random garbage values
Solution
Step 1: Understand structure initialization
The structure p is initialized with "Amy" for name and 25 for age.
Step 2: Print structure members
The printf prints p.name as a string and p.age as an integer, so output is Amy 25.
Final Answer:
Amy 25 -> Option A
Quick Check:
Struct initialized correctly, prints members [OK]
Hint: Initialize structs with braces; access members with dot [OK]
Common Mistakes:
Thinking string assignment to array is invalid here
Confusing pointer and array initialization
Expecting syntax error for string in struct
4. Identify the error in this code snippet:
struct Data {
int id;
float value;
};
int main() {
struct Data d;
d->id = 5;
d.value = 3.14;
return 0;
}
medium
A. Using arrow operator (->) with structure variable
B. Missing semicolon after struct definition
C. Incorrect float assignment
D. No error, code is correct
Solution
Step 1: Check member access operators
The variable d is a structure variable, not a pointer, so d->id is incorrect.
Step 2: Correct operator usage
Use dot operator (.) for structure variables: d.id = 5; is correct.
Final Answer:
Using arrow operator (->) with structure variable -> Option A
Quick Check:
Arrow (->) only for pointers, dot (.) for variables [OK]
Hint: Use dot (.) for struct variables, arrow (->) only for pointers [OK]