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

String

String

A string is a sequence of characters stored in contiguous memory locations, terminated by a null character '\0'. Strings in C are represented as arrays of characters (char[]) where each element of the array holds a single character. The null character marks the end of the string.

Here are some key characteristics of strings in C:

  1. Null Termination: C strings are null-terminated, meaning that the null character '\0' is used to mark the end of the string. This character is automatically appended to the end of string literals.
  2. String Literals: A string literal is a sequence of characters enclosed in double quotes ("). For example, "hello" is a string literal representing the string “hello”. String literals are automatically null-terminated.
  3. Character Array: Strings in C are typically represented as arrays of characters (char[]). Each element of the array holds a single character, and the last element is always the null character to signify the end of the string.
  4. Character Pointer: Strings can also be represented using pointers to characters (char*). A pointer to the first character of the string is sufficient to access the entire string.
  5. Standard Library Functions: C provides a set of standard library functions for working with strings, such as strcpy, strcat, strlen, strcmp, etc. These functions are declared in the string.h header file.

Declaring and Initializing a String

You can declare and initialize a string in C in two main ways:

Method 1: Character Array

#include <stdio.h>

int main() {
    char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};  // Declare and initialize a string
    printf("%s\n", str);  // Print the string
    return 0;
}

Output:

Hello

Explanation:

  • The string "Hello" is stored in a character array, with the last character being the null terminator (\0).
  • The %s format specifier in printf is used to print strings.

Method 2: String Literal

#include <stdio.h>

int main() {
    char str[] = "Hello";  // Automatically adds the null terminator at the end
    printf("%s\n", str);  // Print the string
    return 0;
}

Output:

Hello
  • Explanation:
    • Here, the string "Hello" is directly assigned to the array str. The null terminator is automatically added by the compiler.

Example for better understanding :

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

int main() {
    // String declaration and initialization
    char str1[12] = "hello";
    char str2[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
    char* str3 = "world";

    // Print strings
    printf("str1: %s\n", str1);
    printf("str2: %s\n", str2);
    printf("str3: %s\n", str3);

    // String length
    printf("Length of str1: %ld\n", strlen(str1));

    // String concatenation
    strcat(str1, " world");
    printf("Concatenated string: %s\n", str1);

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

    return 0;
}

Output:

str1: hello
str2: hello
str3: world
Length of str1: 5
Concatenated string: hello world
str1 and str3 are equal

Explanation:

Step1 : Header files

#include <stdio.h>   // Standard input/output library for functions like printf
#include <string.h>  // String library for functions like strlen, strcat, strcmp
  • #include <stdio.h>: Includes the standard I/O library needed for functions like printf to display output.
  • #include <string.h>: Includes the string handling library for manipulating and working with strings (e.g., getting string length, concatenation, comparison).

Step2: Main Function

int main() {
  • int main(): The main function is the entry point of the C program. It returns an integer to indicate the success or failure of the program execution.

Step3: String Declaration and Initialization

    char str1[12] = "hello";  // Declare str1 with size 12 to accommodate "hello" + " world"
    char str2[6] = {'h', 'e', 'l', 'l', 'o', '\0'};  // Explicitly initialize str2 with characters
    char* str3 = "world";  // Declare a pointer to the string literal "world"
  • char str1[12] = "hello";: Declares a character array str1 of size 12, large enough to hold the string "hello" (5 characters) and extra space to later concatenate " world".
  • char str2[6] = {'h', 'e', 'l', 'l', 'o', '\0'};: Declares and explicitly initializes a character array str2 with individual characters, ensuring the null terminator ('\0') is added.
  • char* str3 = "world";: Declares a pointer str3 that points to the string literal "world" stored in memory.

Step4: Printing Strings

    printf("str1: %s\n", str1);  // Prints the content of str1, which is "hello"
    printf("str2: %s\n", str2);  // Prints the content of str2, which is also "hello"
    printf("str3: %s\n", str3);  // Prints the string literal "world"
  • %s in printf is used to print strings. The function outputs the strings stored in str1, str2, and the string literal pointed to by str3.

Step5: String Length

    printf("Length of str1: %ld\n", strlen(str1));  // Gets and prints the length of str1, which is 5
  • strlen(str1): Returns the length of the string str1, which is "hello" (5 characters). The function counts characters up to the null terminator (\0).

Step6: String Concatenation:

    strcat(str1, " world");  // Concatenates " world" to str1
    printf("Concatenated string: %s\n", str1);  // Prints the concatenated string
  • strcat(str1, " world");: Concatenates " world" to the existing string in str1. The array str1 was declared with enough space (12 characters) to hold the combined result "hello world".

Step7: String Comparison:

    if (strcmp(str1, str3) == 0) {  // Compare str1 ("hello world") and str3 ("world")
        printf("str1 and str3 are equal\n");
    } else {
        printf("str1 and str3 are not equal\n");
    }
  • strcmp(str1, str3): Compares the two strings str1 ("hello world") and str3 ("world"). It returns 0 if the strings are equal. Here, the strings are not equal, so the else block will execute.

    Leave a Reply

    Your email address will not be published.

    Need Help?