Форум языка CPP

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум языка CPP » Указатели » ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЯ НА СИМВОЛЬНУЮ СТРОКУ


ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЯ НА СИМВОЛЬНУЮ СТРОКУ

Сообщений 1 страница 4 из 4

1

Как вы уже знаете, указатель содержит адрес памяти. Когда ваша программа передает массив (например, символьную строку) в функцию, C++ передает адрес первого элемента массива. В результате совершенно обычно для функции использовать указатель на символьную строку. Чтобы объявить указатель на символьную строку, функция просто предваряет имя переменной звездочкой, как показано ниже:

void some_function(char *string);

Звездочка, которая предваряет имя переменной, указывает C++, что переменная будет хранить адрес памяти — указатель. Следующая программа PTR_STR.CPP использует указатель на символьную строку внутри функции show_string для вывода содержимого строки по одному символу за один раз:

#include <iostream.h>

void show_string(char *string)

{
   while (*string != '\0')

   {
      cout << *string;
      string++;
    }
}

void main(void)

{
   show_string( "Учимся программировать на языке C++!");
}

Обратите внимание на цикл while внутри функции show_slring. Условие while (*string != '\0') проверяет, не является ли текущий символ, указываемый с помощью указателя string, символом NULL, который определяет последний символ строки. Если символ не NULL, цикл выводит текущий символ с помощью cout. Затем оператор string++; увеличивает указатель siring таким образом, что он указывает на следующий символ строки. Когда указатель string указывает на символ NULL, функция уже вывела строку и цикл завершается.

0

2

Второй пример

Вы только что узнали, что, используя указатель, ваша функция может сканировать строку символов, пока не будет обнаружен символ NULL. Следующая программа использует указатель на строку в функции string_length для определения количества символов в строке:

#include <iostream.h>

int string_length(char *string)

{
   int length = 0;
   while (*string != '\0')

   {
      length++;
      string++;
   }
   return(length);
}

void main(void)

{
   char title[] = "Учимся программировать на языке C++";
   cout << title << " содержит " << string_length(title) << " символов";
}

Как видите, функция string_length сканирует символы строки до тех пор, пока не встретит символ NULL.

0

3

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

0

4


Вы здесь » Форум языка CPP » Указатели » ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЯ НА СИМВОЛЬНУЮ СТРОКУ