►Использование символьных массивов...98 

Элементы массива могут быть любого типа. В С++ возможны массивы любых числовых типов — float, double, long, однако символьные массивы имеют особое значение.

Слова разговорной речи могут быть интерпретированы как массивы символов. Массив символов, содержащий моё имя, таков:

    char sMyName[ ] = { 'S' , ' t' , 'e' , 'p' , 'h' , 'e' , 'n' } ;

Моё имя можно отобразить с помощью следующей небольшой программы:

    /* CharDisplay — выводит на экран массив символов в окне MS DOS */

    #include <cstdio>

    #include <cstdlib>

    #include <iostream>

    using namespace std ;

    /* Объявления прототипов */

    void displayCharArray( char stringArray[ ] , int sizeOfloatArray ) ;

    int main( int nArg , char* pszArgs[ ] )

    {

        char charMyName[ ] = { 'S' , 't' , 'e' , 'p' , 'h' , 'e' , ' n' } ;

        displayCharArray( charMyName , 7 ) ;

        cout << endl ;

        /* Пауза для того, чтобы посмотреть на результат работы программы */

        system( "PAUSE" ) ;

        return 0 ;

    }

_________________

98 стр. Часть 2. Становимся функциональными программистами

    /* displayCharArray — отображает массив символов, по одному при каждой итерации */

    void displayCharArray( char stringArray[ ] , int sizeOfloatArray )

    {

        for ( int i = 0 ; i < sizeOfloatArray ; i++ )

        {

                cout << stringArray[ i ] ;

        }

    }

В программе объявлен фиксированный массив символов, содержащий, как вы могли заметить, моё имя. Этот массив передаётся в функцию displayCharArray( ) вместе с его длиной. Функция displayCharArray( ) идентична функции displayArray( ) из нашего предыдущего примера, но в этом варианте вместо целых чисел она выводит символы.

Программа работает довольно хорошо; но одно неудобство всё-таки есть: всякий раз вместе с самим массивом необходимо передавать его длину. Однако можно придумать правило, которое поможет решить нашу проблему. Если бы мы знали, что в конце массива находится специальный кодовый символ, то не потребовалось бы передавать размеры массива.