Skip to content
Home » C Strings

C Strings

    A string constant is an array of characters just like an array of integers. It helps to work with words and sentences in C programming. Yet, an array of integers and character array are not the same as strings.

    Learn basic of C programming before you begin with strings. If you are familiar with the C basics continue reading.

    1. C Program Structure.
    2. C Printing Output.
    3. C Reading Input Values.
    4. C Data Types.
    5. C Arrays.

    What is a String constant?

    A string constant is a one-dimensional array of characters with is terminated by \backslash \emptyset, also called a null character.

    char firstname[] = { 'P', 'E', 'T', 'E', 'R', '\0'};

    The value of a Null character is \backslash \emptyset and each character in the string constant occupy 1 \hspace{2px}byte of memory. The syntax to initialize a string is very simple.

    char name[] = "Rajesh";
    /*where
      char = data type of string.
      name[]    = indicates that it is a character array or a string.
      "   "   =  double quotes show that the value is a string.
      Rajesh     = actual string value.
      */

    The C compiler inserts a \backslash \emptyset automatically, so there is no need to specify null for every string that you create.

    String Constant Memory Representation
    Figure 1 – String Constant Memory Representation

    Reading and Printing String Constant

    Reading input and writing out is an important part of the C programming language. To read a string constant use following syntax.

    char name[10];
    scanf("%s", &name)

    You already know that name[10] is declared as a string of type char. The scanf() is a builtin function that read inputs of various data types. To tell scanf() that the input is a string use the modifier “%s”. But, scanf() can only read a single word like “Rajesh”, and not “Rajesh Kumar”.

    To read a multi-word string use gets() or do following.

    scanf("%[^\n]s", name);

    The modifier is used for printing strings. For example,

    printf("%s", name);

    String Example program

    It is time to implement everything you learned so far about strings. In this C program,  you will perform two tasks.

    1. read and print a single word string.
    2. read and print a multi-word string.

    Program Code

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char input_name[35];
    int choice;
    /* Menu */
    printf("Menu\n\n");
    printf("1. Read Single Word\n");
    printf("2. Read Multi-Word String\n");
    printf("\n\n Enter your Choice:");
    scanf("%d",&choice);
    switch(choice)
    {
    case 1: 
        system("cls");
        printf("Enter Single Word:");
        scanf("%s", &input_name);
        printf("%s", input_name);
        break;
    case 1:
        system("cls");
        printf("Enter Multi-Word:");
        scanf("%[^\n]s", &input_name);
        printf("%s", input_name);
        break;
    }
    system("pause");
    return 0;
    }

    Output

    Menu
    1. Read Single Word
    2. Read Multi-Word String
     Enter your Choice:1
    Enter Single Word String:Paris
    Paris
    Press any key to continue . . .