Extra 5% OFF Use Code: OL05
Free Shipping over ₹999

String Functions (strlen, strcpy, strcat, etc.)

In C, strings are arrays of characters, ending with a null character '\0'. Strings are handled as arrays and manipulated with a set of built-in functions available in the <string.h> library. Some of the most commonly used string functions include strlen, strcpy, strcat, strcmp, and more.

1. strlen (String Length)

strlen calculates the length of a string, excluding the null terminator.

Syntax:

size_t strlen(const char *str);

Example:

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

int main() {
    char str[] = "Hello, World!";
    printf("Length of the string: %zu\n", strlen(str));  // Output: 13
    return 0;
}

2. strcpy (String Copy)

strcpy copies one string into another. Be careful with the destination buffer’s size to avoid buffer overflow.

Syntax:

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

Example:

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

int main() {
    char src[] = "Hello";
    char dest[20];

    strcpy(dest, src);  // Copies src to dest
    printf("Destination string after strcpy: %s\n", dest);  // Output: Hello
    return 0;
}

3. strcat (String Concatenation)

strcat appends the source string to the destination string. Ensure the destination has enough space.

Syntax:

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

Example:

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

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

    strcat(str1, str2);  // Appends str2 to str1
    printf("Concatenated string: %s\n", str1);  // Output: Hello World
    return 0;
}

4. strcmp (String Comparison)

strcmp compares two strings lexicographically:

  • Returns 0 if both strings are equal.
  • Returns a negative value if the first string is less than the second.
  • Returns a positive value if the first string is greater than the second.

Syntax:

int strcmp(const char *str1, const char *str2);

Example:

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

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

    printf("strcmp(str1, str2) = %d\n", strcmp(str1, str2));  // Output: 0
    printf("strcmp(str1, str3) = %d\n", strcmp(str1, str3));  // Output: < 0 (str1 < str3)
    return 0;
}

5. strncpy (String Copy with Length)

strncpy copies a specific number of characters from the source string to the destination.

Syntax:

char *strncpy(char *dest, const char *src, size_t n);

Example:

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

int main() {
    char src[] = "Hello";
    char dest[20];

    strncpy(dest, src, 3);  // Copies first 3 characters of src to dest
    dest[3] = '\0';  // Null-terminate manually
    printf("Destination after strncpy: %s\n", dest);  // Output: Hel
    return 0;
}

6. strncat (String Concatenation with Length)

strncat appends up to a specific number of characters from the source to the destination.

Syntax:

char *strncat(char *dest, const char *src, size_t n);

Example:

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

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

    strncat(str1, str2, 3);  // Appends first 3 characters of str2 to str1
    printf("Concatenated string: %s\n", str1);  // Output: HelloWor
    return 0;
}

7. strstr (Find Substring)

strstr finds the first occurrence of a substring in a string. It returns a pointer to the first occurrence, or NULL if not found.

Syntax:

char *strstr(const char *haystack, const char *needle);

Example:

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

int main() {
    char str[] = "Hello, World!";
    char *result = strstr(str, "World");

    if (result != NULL) {
        printf("Substring found: %s\n", result);  // Output: World!
    } else {
        printf("Substring not found.\n");
    }
    return 0;
}

8. strchr (Find Character)

strchr finds the first occurrence of a character in a string. It returns a pointer to the character, or NULL if not found.

Syntax:

char *strchr(const char *str, int c);

Example:

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

int main() {
    char str[] = "Hello, World!";
    char *result = strchr(str, 'W');

    if (result != NULL) {
        printf("Character found: %s\n", result);  // Output: World!
    } else {
        printf("Character not found.\n");
    }
    return 0;
}

9. strrchr (Find Last Occurrence of Character)

strrchr finds the last occurrence of a character in a string.

Syntax:

char *strrchr(const char *str, int c);

Example:

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

int main() {
    char str[] = "Hello, World!";
    char *result = strrchr(str, 'o');

    if (result != NULL) {
        printf("Last occurrence of 'o' found at: %s\n", result);  // Output: orld!
    } else {
        printf("Character not found.\n");
    }
    return 0;
}

10. strdup (Duplicate String)

strdup duplicates a string by allocating memory and copying the contents. It returns a pointer to the new string, which must be freed manually.

Syntax:

char *strdup(const char *str);

Example:

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

int main() {
    char str[] = "Hello, World!";
    char *dupStr = strdup(str);

    if (dupStr != NULL) {
        printf("Duplicated string: %s\n", dupStr);  // Output: Hello, World!
        free(dupStr);  // Free allocated memory
    } else {
        printf("Memory allocation failed.\n");
    }
    return 0;
}

Summary of String Functions

FunctionPurpose
strlenFinds the length of a string
strcpyCopies one string to another
strncpyCopies a specified number of characters
strcatAppends one string to another
strncatAppends a specified number of characters
strcmpCompares two strings
strstrFinds a substring in a string
strchrFinds the first occurrence of a character
strrchrFinds the last occurrence of a character
strdupDuplicates a string

    Leave a Reply

    Your email address will not be published.

    Need Help?