In C, strings are one special kind of array: a string is an array of char values:

char name[7];

I introduced the char type when I introduced types, but in short it is commonly used to store letters of the ASCII chart.

A string can be initialized like you initialize a normal array:

char name[7] = { "F", "l", "a", "v", "i", "o" };

Or more conveniently with a string literal (also called string constant), a sequence of characters enclosed in double quotes:

char name[7] = "Flavio";

You can print a string via printf() using %s:

printf("%s", name);

Do you notice how “Flavio” is 6 chars long, but I defined an array of length 7? Why? This is because the last character in a string must be a 0 value, the string terminator, and we must make space for it.

This is important to keep in mind especially when manipulating strings.

Speaking of manipulating strings, there’s one important standard library that is provided by C: string.h.

This library is essential because it abstracts many of the low level details of working with strings, and provides us a set of useful functions.

You can load the library in your program by adding on top:

#include <string.h>

And once you do that, you have access to:

  • strcpy() to copy a string over another string
  • strcat() to append a string to another string
  • strcmp() to compare two strings for equality
  • strncmp() to compare the first n characters of two strings
  • strlen() to calculate the length of a string

and many, many more.

I will introduce all those string functions in separate blog posts, but just know that they exist.

Download my free C Handbook, and check out my premium Courses