LearnContact
Lesson 208 min read

Strings

Learn how strings allow multiple characters to be stored together and processed efficiently in C.

Introduction

Imagine creating a program that stores a person's name. You could store each character in a separate variable such as char ch1 = 'J', char ch2 = 'O', and so on. This approach quickly becomes difficult as names get longer. C provides a much better solution called a String. A string allows multiple characters to be stored together using a single variable.

What is a String?

A String is a sequence of characters stored in a character array and terminated by a special character called the Null Character (\0). Unlike many programming languages, C does not have a built-in string data type. Instead, strings are represented using arrays of characters.

Why Do We Need Strings?

Without Strings

With Strings

Real-World Analogy

Imagine a word written on paper: H E L L O. Instead of storing each letter on a different sheet, all letters are written together to form one word. Similarly, a string stores multiple characters together in one continuous block.

Characteristics of Strings

Key Characteristics
  • Store multiple characters
  • Stored using a character array
  • End with a null character (\0)
  • Accessed using indexes starting from 0

Memory Representation

Consider the string "HELLO". Notice the extra null character at the end:

Memory View
Index:   0    1    2    3    4    5
       +----+----+----+----+----+----+
       | H  | E  | L  | L  | O  | \0 |
       +----+----+----+----+----+----+

What is the Null Character?

The Null Character (\0) marks the end of a string. It tells the compiler where the string ends. Without it, C would not know where to stop reading characters, which could lead to reading garbage memory.

String vs Character

FeatureCharacterString
DefinitionSingle symbolCollection of characters
QuotesSingle quotes ('A')Double quotes ("APPLE")
StorageStored in one charStored in a character array

Common Operations & String Library

Programs commonly perform operations like storing, displaying, reading, finding length, comparing, copying, and concatenating strings. Most of these operations are available through the String Library.

Header File
#include <string.h>

Example: Creating and Displaying a String

c
#include <stdio.h>

int main()
{
    char name[] = "JOHN";

    printf("%s", name);

    return 0;
}

Line-by-Line Explanation

Line 1: #include <stdio.h>

Includes the Standard Input Output library so that the printf() function can be used.

Line 3: int main()

The execution of the program begins from the main() function.

Line 5: char name[] = "JOHN";

char indicates the array stores characters. name is the string name. [] lets the compiler automatically determine the size. "JOHN" is the value. The compiler automatically appends the null character (\0) at the end.

Line 7: printf("%s", name);

%s is the format specifier for strings. It prints every character until it reaches the null character (\0).

Line 9: return 0;

Ends the program successfully.

Memory Representation of "JOHN"

Variable: name
Index:   0    1    2    3    4
       +----+----+----+----+----+
       | J  | O  | H  | N  | \0 |
       +----+----+----+----+----+

Program Execution Flow

Program Starts
Create Character Array
Store "JOHN"
Append \0
Display String
Program Ends

Advantages of Strings

Strings provide many benefits
  • Store multiple characters together
  • Simplify text processing
  • Easy to display, compare, and manipulate
  • Widely used in real-world applications

Real-World Applications

Strings are used in almost every software application to store:

User Data

E-Commerce

Communication

Common Beginner Mistakes

Forgetting the Null Character

C automatically adds the null character for string literals. When manually creating character arrays, programmers must ensure the string is properly terminated.

Using Single Quotes Instead of Double Quotes
// Incorrect:
char str[] = 'HELLO';

// Correct:
char str[] = "HELLO";
Confusing Characters and Strings

'A' is one character. "APPLE" is a string. Never mix them up.

Accessing Beyond the String Length

Always access only valid indexes within the string to avoid reading garbage memory.

Best Practices

  • Use meaningful string names such as studentName instead of str.
  • Remember that strings end with a null character (\0).
  • Use the appropriate header file (string.h) for string operations.
  • Distinguish clearly between characters using single quotes and strings using double quotes.
  • Avoid accessing indexes outside the valid range.

Frequently Asked Questions

What is a string?

A string is a sequence of characters stored in a character array and terminated by a null character (\0).

Does C have a built-in string data type?

No. C represents strings using arrays of characters.

Why is the null character important?

It marks the end of the string, allowing C functions to know where the string finishes.

Which format specifier is used to display strings?

The %s format specifier is used with printf() to display strings.

Which header file provides string functions?

The <string.h> header file provides standard string manipulation functions.

Key Takeaways

  • A string is a sequence of characters stored in a character array.
  • Every C string ends with the null character (\0).
  • Strings use double quotation marks.
  • %s is the format specifier used to display strings.
  • The <string.h> library provides useful functions for string operations.

Summary

Strings are one of the most commonly used data structures in C programming because they allow programs to store and manipulate text efficiently. Although C does not provide a dedicated string data type, character arrays combined with the null character (\0) make string handling possible. Understanding strings is essential for building real-world applications that process names, messages, files, passwords, and other textual information.

Next Lesson →

Pointers