Standard library string functions (strcpy, strcat, strlen, etc.).

Lesson 5.5: Standard Library String Functions

C doesn't have a built-in string data type like some other languages (e.g., Python or Java). Instead, strings are represented as arrays of characters terminated by a null character (\0).  Fortunately, the C standard library (<string.h>) provides a rich set of functions to make working with strings easier. Let's explore some of the most common ones:

1. strcpy(destination, source)

Purpose: Copies the contents of the source string (including the null terminator) to the destination string.

Important: Ensure the destination array is large enough to hold the source string.



#include <stdio.h>

#include <string.h>

int main() {

    char src[] = "Hello";

    char dest[10]; // Sufficient space to hold "Hello\0"

    strcpy(dest, src);

    printf("%s\n", dest); // Output: Hello

    return 0;


2. strcat(destination, source)

Purpose: Appends (concatenates) the source string to the end of the destination string. The null terminator of destination is replaced with the first character of source.

Important: Ensure the destination array has enough remaining space to hold the source string and the null terminator.



char str1[20] = "Hello";

char str2[] = " World";

strcat(str1, str2);

printf("%s\n", str1); // Output: Hello World

3. strlen(string)

Purpose: Returns the length of a string (the number of characters before the null terminator).


char message[] = "Hello, world!";

int length = strlen(message);

printf("Length: %d\n", length); // Output: Length: 13

4. strcmp(string1, string2)

Purpose: Compares two strings lexicographically (based on character values).

Return Value:

0: If the strings are identical.

Negative: If string1 is less than string2.

Positive: If string1 is greater than string2.



if (strcmp("apple", "banana") < 0) {

    printf("apple comes before banana\n");


5. strncmp(string1, string2, n)

Purpose: Compares the first n characters of two strings. Useful when you want to compare only parts of strings.

Additional Functions

strchr(string, character): Finds the first occurrence of a character in a string.

strstr(haystack, needle): Finds the first occurrence of a substring within a string.

memcpy(destination, source, n): Copies n bytes from the source to the destination (can be used for copying parts of strings).

memset(string, character, n): Sets the first n bytes of a string to the specified character.

Important Considerations

String Immutability: String literals in C are typically stored in read-only memory. Attempting to modify them directly might lead to errors.

Buffer Overflows: Be extremely careful not to overflow the destination buffers when using functions like strcpy and strcat. Always ensure you have allocated enough space.

Hands-On Exercise

Write a program that gets two names from the user.

Compare the names to determine which one comes first alphabetically.

Concatenate the names and print the combined string.

Course Syllabus