Strings in C

09 Dec, 2020
Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’.
Declaration of strings: Declaring a string is as simple as declaring a one-dimensional array. Below is the basic syntax for declaring a string.
char str_name[size];

In the above syntax str_name is any name given to the string variable and size is used to define the length of the string, i.e the number of characters strings will store. Please keep in mind that there is an extra terminating character which is the Null character (‘\0’) used to indicate the termination of string which differs strings from normal character arrays.
Initializing a String: A string can be initialized in different ways. We will explain this with the help of an example. Below is an example to declare a string with name as str and initialize it with “GeeksforGeeks”.
1. char str[] = "GeeksforGeeks";

2. char str[50] = "GeeksforGeeks";

3. char str[] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

4. char str[14] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

Below is the memory representation of a string “Geeks”.
Let us now look at a sample program to get a clear understanding of declaring and initializing a string in C and also how to print a string.
// C program to illustrate strings  #include<stdio.h>  int main(){       // declare and initialize string    char str[] = "Geeks";          // print string    printf("%s",str);          return 0;}
Output:
Geeks

We can see in the above program that strings can be printed using normal printf statements just like we print any other variable. Unlike arrays, we do not need to print a string, character by character. The C language does not provide an inbuilt data type for strings but it has an access specifier “%s” which can be used to directly print and read strings.
Below is a sample program to read a string from user:
// C program to read strings  #include<stdio.h>  int main(){       // declaring string    char str[50];          // reading string    scanf("%s",str);          // print string    printf("%s",str);      return 0;}
You can see in the above program that string can also be read using a single scanf statement. Also, you might be thinking that why we have not used the ‘&’ sign with string name ‘str’ in scanf statement! To understand this you will have to recall your knowledge of scanf. We know that the ‘&’ sign is used to provide the address of the variable to the scanf() function to store the value read in memory. As str[] is a character array so using str without braces ‘[‘ and ‘]’ will give the base address of this string. That’s why we have not used ‘&’ in this case as we are already providing the base address of the string to scanf.
Passing strings to function: As strings are character arrays, so we can pass strings to function in a same way we pass an array to a function. Below is a sample program to do this:
// C program to illustrate how to // pass string to functions#include<stdio.h>  void printStr(char str[]){    printf("String is : %s",str);}  int main(){       // declare and initialize string    char str[] = "GeeksforGeeks";          // print string by passing string    // to a different function    printStr(str);          return 0;}
Output:
String is : GeeksforGeeks

Related Articles:
puts() vs printf() to print a string
Swap strings in C
Storage for strings in C
gets() is risky to use!
This article is contributed by Harsh Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
C-String
cpp-string
C Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Header files in C/C++ and its uses
C Program to read contents of Whole File
How to return multiple values from a function in C or C++?
C++ Program to check Prime Number
Producer Consumer Problem in C
C Program to Swap two Numbers
C program to sort an array in ascending order
Program to find Prime Numbers Between given Interval
Set, Clear and Toggle a given bit of a number in C
time() function in C