C Programming String Basics And String Handling Functions Strlen Strcpy Strcat Strcmp Complete Guide

 Last Update:2025-06-22T00:00:00     .NET School AI Teacher - SELECT ANY TEXT TO EXPLANATION.    6 mins read      Difficulty-Level: beginner

Understanding the Core Concepts of C Programming String Basics and String Handling Functions strlen, strcpy, strcat, strcmp

C Programming String Basics and String Handling Functions: strlen, strcpy, strcat, strcmp

String Basics

  1. Definition: A string in C is an array of characters terminated by a null character '\0'. For example, the string "Hello" in C is represented internally as 'H', 'e', 'l', 'l', 'o', '\0'.
  2. Declaration: You can declare a string in several ways:
    • char str[6] = "Hello";
    • char str[] = "Hello";
    • char str[6] = {'H','e','l','l','o','\0'};
  3. Initialization: Strings can be initialized at declaration or later using assignment.
  4. Dynamic Memory: Strings can also be dynamically allocated using functions like malloc and free.

Essential String Handling Functions

  1. strlen

    • Purpose: Calculates the length of a string, excluding the null terminator.
    • Function Prototype: size_t strlen(const char *str);
    • Return Value: Returns the number of characters in the string str before the null terminating character.
    • Example:
      #include <stdio.h>
      #include <string.h>
      
      int main() {
          char str[] = "Hello";
          printf("The length of the string is %zu\n", strlen(str));
          return 0;
      }
      
    • Description: In this example, strlen returns 5 because "Hello" consists of five characters before the null terminator.
  2. strcpy

    • Purpose: Copies a source string into a destination buffer.
    • Function Prototype: char *strcpy(char *dest, const char *src);
    • Parameters:
      • dest: Pointer to the destination buffer where the content is to be copied.
      • src: C string to be copied.
    • Return Value: Returns a pointer to the destination string, dest.
    • Safety Consideration: Ensure that the destination buffer is large enough to hold the source string plus the terminating null byte.
    • Example:
      #include <stdio.h>
      #include <string.h>
      
      int main() {
          char src[] = "Hello";
          char dest[6];
          strcpy(dest, src);
          printf("Copied string: %s\n", dest);
          return 0;
      }
      
    • Description: This copies the contents of src to dest, making "Hello" appear in both.
  3. strcat

    • Purpose: Appends a copy of the source string to the destination string.
    • Function Prototype: char *strcat(char *dest, const char *src);
    • Return Value: Returns a pointer to the destination string which now holds both original and appended strings.
    • Safety Considerations: The destination buffer must be large enough to accommodate the resulting string.
    • Example:
      #include <stdio.h>
      #include <string.h>
      
      int main() {
          char dest[11] = "Hello ";
          char src[] = "World";
          strcat(dest, src);
          printf("Concatenated string: %s\n", dest);
          return 0;
      }
      
    • Description: This appends "World" to "Hello ", creating the full phrase "Hello World".
  4. strcmp

    • Purpose: Compares two strings lexicographically and returns an integer based on the comparison result.
    • Function Prototype: int strcmp(const char *str1, const char *str2);
    • Return Values:
      • 0 if str1 is equal to str2.
      • A negative number if str1 appears before str2 in lexicographical order.
      • A positive number if str1 appears after str2 in lexicographical order.
    • Example:

Online Code run

🔔 Note: Select your programming language to check or run code at

💻 Run Code Compiler

Step-by-Step Guide: How to Implement C Programming String Basics and String Handling Functions strlen, strcpy, strcat, strcmp

C Programming String Basics and String Handling Functions

Introduction to Strings in C

In C, a string is a sequence of characters stored in contiguous memory locations, terminated by the null character \0. For example, the string "Hello" is stored as {'H', 'e', 'l', 'l', 'o', '\0'}.

String Length (strlen)

The strlen function returns the length of a string (the number of characters before the null terminator).

Function Prototype:

size_t strlen(const char *str);

Example:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    size_t length = strlen(str);
    
    printf("The length of the string is: %zu\n", length);
    
    return 0;
}

Steps:

  1. Include the String Library: #include <string.h>
  2. Declare a String: char str[] = "Hello, World!";
  3. Call strlen: size_t length = strlen(str);
  4. Print the Result: printf("The length of the string is: %zu\n", length);

String Copy (strcpy)

The strcpy function copies the content of one string into another string.

Function Prototype:

char *strcpy(char *dest, const char *src);

Example:

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];  // Ensure the destination array is large enough
    
    strcpy(dest, src);
    
    printf("Copied string: %s\n", dest);
    
    return 0;
}

Steps:

  1. Include the String Library: #include <string.h>
  2. Declare Source and Destination Strings:
    char src[] = "Hello, World!";
    char dest[50];
    
  3. Copy the String: strcpy(dest, src);
  4. Print the Result: printf("Copied string: %s\n", dest);

String Concatenation (strcat)

The strcat function appends the contents of one string to the end of another string.

Function Prototype:

char *strcat(char *dest, const char *src);

Example:

#include <stdio.h>
#include <string.h>

int main() {
    char dest[50] = "Hello, ";
    char src[] = "World!";
    
    strcat(dest, src);
    
    printf("Concatenated string: %s\n", dest);
    
    return 0;
}

Steps:

  1. Include the String Library: #include <string.h>
  2. Declare Source and Destination Strings: Ensure the destination array has enough space.
    char dest[50] = "Hello, ";
    char src[] = "World!";
    
  3. Concatenate the Strings: strcat(dest, src);
  4. Print the Result: printf("Concatenated string: %s\n", dest);

String Comparison (strcmp)

The strcmp function compares two strings lexicographically and returns an integer based on the comparison.

Function Prototype:

Top 10 Interview Questions & Answers on C Programming String Basics and String Handling Functions strlen, strcpy, strcat, strcmp

Top 10 Questions and Answers on C Programming String Basics and String Handling Functions

1. What is a String in C Programming?

2. How do you declare a String in C?

Answer: A string can be declared as a character array. For example, char myString[6] = "Hello"; or char myString[] = "Hello";. The first declaration explicitly defines the size of the array, whereas the second allows the compiler to determine it automatically, including the null character.

3. What does the strlen function do in C?

Answer: The strlen function is used to determine the length of a string, excluding the null termination character. It is located in the <string.h> header file. Example: int length = strlen("Hello"); will return 5.

4. How does the strcpy function work in C?

Answer: The strcpy function is used to copy the content of one string into another. The syntax is char *strcpy(char *dest, const char *src);. It copies the content of src into dest and returns dest. Note: Ensure dest has enough space to hold src.

5. How is the strcat function used in C?

Answer: The strcat function is used to concatenate (append) one string to the end of another. The syntax is char *strcat(char *dest, const char *src);. It appends src to dest and returns dest. Ensure dest has enough space.

6. What is the purpose of the strcmp function in C?

Answer: The strcmp function is used to compare two strings lexicographically. It returns 0 if both strings are equal, a negative value if the first string is less than the second, and a positive value if the first string is greater. The syntax is int strcmp(const char *str1, const char *str2);.

7. Can you provide an example of using strlen, strcpy, strcat, and strcmp?

Answer:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello";
    char str2[20] = "World";
    char str3[20];

    // strlen
    printf("Length of str1: %lu\n", strlen(str1));

    // strcpy
    strcpy(str3, str1);
    printf("str3 after strcpy: %s\n", str3);

    // strcat
    strcat(str1, str2);
    printf("str1 after strcat: %s\n", str1);

    // strcmp
    if (strcmp(str1, str2) == 0) {
        printf("str1 and str2 are equal\n");
    } else {
        printf("str1 and str2 are not equal\n");
    }

    return 0;
}

Output:

Length of str1: 5
str3 after strcpy: Hello
str1 after strcat: HelloWorld
str1 and str2 are not equal

8. What are the differences between char *str and char str[] in C?

Answer: char *str is a pointer that can point to a character. It can point to a string literal (which is immutable) or a dynamically allocated string. char str[] is an array of characters, which is mutable and can be used to store and modify strings. For example:

char *str1 = "Hello"; // Immutable string literal
char str2[] = "World"; // Mutable array of characters

9. Why do we use the null character '\0' at the end of a string in C?

Answer: The null character '\0' is used as a terminator to signify the end of a string in C. It helps functions like strlen, strcpy, strcat, and strcmp to determine where the string ends, ensuring they don't read beyond the allocated memory, which can lead to undefined behavior or crashes.

10. What are some common pitfalls when working with strings in C?

Answer: Common pitfalls include:

  • Buffer Overflow: Writing beyond the allocated space of a string can cause undefined behavior.
  • Not Enough Space: Ensuring the destination string has enough space before copying or concatenating.
  • Null-Pointer Dereference: Using uninitialized or null pointers.
  • String Literal Modification: Attempting to modify string literals, which are read-only.
  • Off-By-One Errors: Failing to account for the null terminator can lead to incorrect string lengths and manipulations.

You May Like This Related .NET Topic

Login to post a comment.