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.

Advertisements

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.

Advertisements
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 . . . 

Advertisements

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.