C Programming: Strings

iA string is a sequence of characters( Array of character)  that is treated as a single data item. Any group of characters (except double quote sign) defined between double quotation marks is a string constant. Example:

“All is Well”

If you want to include a double quote in the string to be printed, then you may use it with a back slash as shown below:

“”All is Well, ” said Amir Khan.”

Declaring String Variables

C does not support strings as a data type as C++, JAVA etc. However, it allows us to represent strings as character arrays. In C, therefore, a string variable is any valid C variable name and is always declared as an array of characters. The general syntax of declaration of string is:

char string_name [ size];

 

The size determines the number of characters in the string_name. Example: char city[20]; When the compiler assigns a character string to a character array, it automatically supplies a null character(‘’) at the end of the string. Therefore, the size should be equal to the maximum number of characters in the string plus one.

 

Initializing string variable

 

C permits a character array to be initialized in either of the following two forms:

1: char city[10] = “Kathmandu”;
2: char city[10] = {‘K’,’a’,’t’,’h’,’m’,’a’,’n’,’d’,’u’,’\0′};

 

The reason that city had to be 10 elements long is that the string Kathmandu contains 9 characters and one element space is provided for the null terminator.

 

Reading String from user

 

The familiar input function scanf can be used with %s format specification to read in a string of characters. Example:

char address[10];
scanf(“%s”,address);

 

 

Note that there is no amp percent(&) before address , it is because address itself represents the first address of string. The problem with scanf with %s  is that it terminates its input on the first white space it finds. For example if I enter NEW YORK, then it only takes NEW as input and neglects YORK. To avoid this you can write following code to read input

1: char address[10];
2: scanf(“%[^\n]”, address];
3: gets(address)

 

You can either use scanf with %[^n] as format specification or use gets(string_name).

SHARE C Programming: Strings

You may also like...

Leave a Reply

Your email address will not be published.

Share