Character arrays let you store and work with text in C. They hold letters, words, or sentences as a list of characters.
Character arrays
char array_name[size]; // Example: char greeting[6];
The size is how many characters the array can hold.
Remember to leave space for the special '\0' character that marks the end of the text.
char word[5]; // Can hold 4 letters plus '\0' to end the string
char name[] = "Anna"; // Size is 5 automatically (4 letters + '\0')
char empty[10] = {0}; // All characters start as '\0' (empty string)
char single_letter[2] = {'A', '\0'}; // Holds one letter and the end marker
This program creates a character array holding "Hello". It prints it, changes the first letter to 'J', then prints again.
#include <stdio.h> int main() { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Before change: %s\n", greeting); // Change 'H' to 'J' greeting[0] = 'J'; printf("After change: %s\n", greeting); return 0; }
Character arrays end with a special '\0' character to mark the end of the text.
Always leave space for '\0' when declaring the array size.
Time complexity to access or change a character is O(1) because you use the index directly.
Common mistake: forgetting the '\0' causes unexpected behavior when printing or using string functions.
Use character arrays when you need to work with text at a low level in C.
Character arrays store text as a list of characters ending with '\0'.
You can change letters by accessing array positions.
Always remember to include space for the '\0' end marker.
Practice
Solution
Step 1: Understand character arrays
A character array in C is a collection of characters stored in contiguous memory locations.Step 2: Identify its use
It is mainly used to store text like words or sentences, not numbers or calculations.Final Answer:
To store a sequence of characters, like a word or sentence -> Option AQuick Check:
Character array = text storage [OK]
- Thinking character arrays store numbers only
- Confusing character arrays with integer arrays
- Assuming character arrays perform calculations
Solution
Step 1: Understand string termination in C
Strings in C end with a special character '\0' to mark the end.Step 2: Check array size and initialization
char word[6] = "hello"; declares an array of size 6 (5 letters + '\0') and initializes it with "hello" correctly.Final Answer:
char word[6] = "hello"; -> Option AQuick Check:
String needs space for '\0' [OK]
- Not allocating space for the null terminator '\0'
- Using single quotes for strings
- Declaring array size too small
char str[] = "cat";
printf("%c", str[3]);
Solution
Step 1: Understand string indexing
String "cat" has characters at indices 0:'c', 1:'a', 2:'t', and index 3 is the null terminator '\0'.Step 2: Print character at index 3
Printing str[3] prints the null character which is invisible, so no visible output appears.Final Answer:
0 (null character, no visible output) -> Option BQuick Check:
str[3] = '\0' (null) [OK]
- Expecting 't' at index 3 instead of '\0'
- Thinking it causes an error
- Confusing index positions
char name[5];
strcpy(name, "hello world");
Solution
Step 1: Check array size vs string length
"hello world" has 11 characters plus '\0' = 12 total, but array size is only 5.Step 2: Understand consequences
Copying this string will overflow the array, causing undefined behavior.Final Answer:
Array size is too small for the string -> Option DQuick Check:
Array must fit string + '\0' [OK]
- Ignoring array size limits
- Assuming strcpy checks size
- Forgetting null terminator space
char arr[10] = "abc";
arr[3] = 'd';
arr[4] = '\0';
printf("%s", arr);
Solution
Step 1: Analyze initial array content
arr is initialized with "abc" which is 'a','b','c','\0' plus extra space.Step 2: Modify characters and null terminator
arr[3] = 'd' adds 'd' after 'c', then arr[4] = '\0' sets new string end after 'd'.Step 3: Print the string
printf prints characters until '\0', so output is "abcd".Final Answer:
abcd -> Option CQuick Check:
String ends at arr[4] '\0' [OK]
- Ignoring manual null terminator placement
- Expecting original string without changes
- Confusing character and string printing
Ready to prove it?
Pass the test and this pattern moves unknown
