|
The most common use of one-dimentional
array is a string. In C++, a string is defined as a
character array terminated by a NULL character. A NULL
character is represented as '\0'. The size of a character
array should be at least one character longer than the
string it is supposed to hold. This is because the last byte
in a character array holds the string terminator ('\0').
For example, if you want to declare an array cWord that will
hold a string of ten characters, the declation should be:
char cWord[11];
Initializing Strings
A string can be initialized when declared by specifying the
value of some or all of its elements. The initialization at
the time of declaration is possible only outside the
function.
Direct initialization is possible in the following two ways:
char cStr1[10] = {'M','e','t','a','l','i','c','a','\0'};
char cStr2[10] = {"Metallica"};
In the first case, individual elements are moved into the
array, and therefore it is essential to specify the string
terminator explicitly. In the second case, the string
terminator gets attached automatically since the string has
been assigned to the array.
The following programs illustrates the initialization of
arrays during declaration:
//Program 4.2
//This program demonstrates the initialization of arrays
during declaration
#include<iostream.h>
char cArr[50] = {"the only thing constant in this world is
change"};
void main()
{
cout<<"It is ironnical to note that"<<cArr<<endl;
}
Note that cArr is declared before the function main()
Array Address
The definition char cString[11];
defines an array cString to store ten elements and the
string terminator. In the memory, cString actually refers to
the starting position or address of the area which gets
allocated for storing the elements of the array. Therefore,
cString stores the address of cString[0], the first elements
of the array. cString is therefore a pointer, but the
address stored in cString is constant and cannot be changed.
For example, consider the following code:
#include<iostream.h>
char str[6] = "Hello";
void main()
{
cout<<"The string is "<<str<<endl;
str++;
cout<<"The string is "<<str<<endl;
}
The compiler will flag an error for the statement,
str++; because str is constant and cannot be changed. |