Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Initializing Strings | Creating and Storing Strings
Working with Strings in C

bookInitializing Strings

Note
Definition

Definition: String initialization in C refers to the process of assigning an initial sequence of characters to a character array, either by using a string literal or by specifying each character individually. This sets up the memory content of the array to represent a string, typically ending with a null terminator ('\0').

You can initialize a string in C in two main ways: using a string literal or by providing a list of characters. When you use a string literal, you assign a quoted sequence of characters directly to a character array. For example, writing char str[] = "hello"; tells the compiler to create an array that holds the characters h, e, l, l, o, and automatically adds the null terminator at the end.

Alternatively, you can initialize a string by specifying each character in a list. This approach looks like char str[] = {'h', 'e', 'l', 'l', 'o', '\0'}; where you must manually include the null terminator to mark the end of the string.

main.c

main.c

copy
123456789101112131415
// main.c #include <stdio.h> int main() { // Initialization with a string literal char greeting1[] = "hello"; // Initialization with a character list char greeting2[] = {'h', 'e', 'l', 'l', 'o', '\0'}; printf("greeting1: %s\n", greeting1); printf("greeting2: %s\n", greeting2); return 0; }

The main difference between these two methods is that using a string literal automatically appends the null terminator at the end of the array, so you do not have to add it yourself. When using a character list, you are responsible for including the null terminator; if you forget it, the array will not be recognized as a proper string by most C string functions. String literals are convenient for most cases, while character lists are useful when you want precise control over each character in the array, such as when initializing only part of the array or creating non-standard character sequences.

main.c

main.c

copy
12345678910111213141516171819202122
// main.c #include <stdio.h> int main() { // Partial initialization: only the first three elements are set char partial[6] = {'h', 'i', '!'}; printf("partial: "); for (int i = 0; i < 6; i++) { // Print each character as a visible value if (partial[i] == '\0') { printf("\\0 "); } else { printf("%c ", partial[i]); } } printf("\n"); printf("As string: %s\n", partial); return 0; }

When you partially initialize a character array, any elements you do not explicitly set are automatically filled with zeros ('\0'). In the previous example, only the first three characters are set, and the remaining elements are null bytes. This means the string will appear to end after the first null terminator, and any string functions will stop reading at that point. Partial initialization can be useful for creating strings shorter than the array size or ensuring unused elements are set to zero.

question mark

Which string initialization method(s) in C automatically add the null terminator?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you give an example of partial initialization in C?

What happens if I forget the null terminator in a character list?

When should I use a character list instead of a string literal?

bookInitializing Strings

Glissez pour afficher le menu

Note
Definition

Definition: String initialization in C refers to the process of assigning an initial sequence of characters to a character array, either by using a string literal or by specifying each character individually. This sets up the memory content of the array to represent a string, typically ending with a null terminator ('\0').

You can initialize a string in C in two main ways: using a string literal or by providing a list of characters. When you use a string literal, you assign a quoted sequence of characters directly to a character array. For example, writing char str[] = "hello"; tells the compiler to create an array that holds the characters h, e, l, l, o, and automatically adds the null terminator at the end.

Alternatively, you can initialize a string by specifying each character in a list. This approach looks like char str[] = {'h', 'e', 'l', 'l', 'o', '\0'}; where you must manually include the null terminator to mark the end of the string.

main.c

main.c

copy
123456789101112131415
// main.c #include <stdio.h> int main() { // Initialization with a string literal char greeting1[] = "hello"; // Initialization with a character list char greeting2[] = {'h', 'e', 'l', 'l', 'o', '\0'}; printf("greeting1: %s\n", greeting1); printf("greeting2: %s\n", greeting2); return 0; }

The main difference between these two methods is that using a string literal automatically appends the null terminator at the end of the array, so you do not have to add it yourself. When using a character list, you are responsible for including the null terminator; if you forget it, the array will not be recognized as a proper string by most C string functions. String literals are convenient for most cases, while character lists are useful when you want precise control over each character in the array, such as when initializing only part of the array or creating non-standard character sequences.

main.c

main.c

copy
12345678910111213141516171819202122
// main.c #include <stdio.h> int main() { // Partial initialization: only the first three elements are set char partial[6] = {'h', 'i', '!'}; printf("partial: "); for (int i = 0; i < 6; i++) { // Print each character as a visible value if (partial[i] == '\0') { printf("\\0 "); } else { printf("%c ", partial[i]); } } printf("\n"); printf("As string: %s\n", partial); return 0; }

When you partially initialize a character array, any elements you do not explicitly set are automatically filled with zeros ('\0'). In the previous example, only the first three characters are set, and the remaining elements are null bytes. This means the string will appear to end after the first null terminator, and any string functions will stop reading at that point. Partial initialization can be useful for creating strings shorter than the array size or ensuring unused elements are set to zero.

question mark

Which string initialization method(s) in C automatically add the null terminator?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2
some-alt