Главная->Інформатика та програмування->Содержание->Копирование строк с использованием указателей

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн

Копирование строк с использованием указателей

В рассмотренных нами примерах указатели использовались для получения зна- чений элементов массива. Указатели можно также использовать для вставки значений в массив. В следующем примере COPYSTR мы рассмотрим функцию, которая копирует одну строку в другую:

// copystr.cpp

// копирует одну строку в другую

#include <iostream>

using namespace std;

 

int main ( )

{

  void copystr ( char*, const char* ); // прототип функции

  char* str1 = "Поспешишь – людей насмешишь!";

  char str2 [ 80 ];                    // пустая строка

 

  copystr ( str2, str1 );              // копируем строку str1 в str2

  cout << str2 << endl;                // и показываем результат

 

  return 0;

}

///////////////////////////////////////////////////////////

void copystr ( char* dest, const char* src )

{

  while ( *src )      // пока не встретим конец строки

    *dest++ = *src++; // копируем ее

  *dest = '\0';       // заканчиваем строку

}

 

Здесь функция main() вызывает функцию copystr(), которая копирует str1 в str2.

*dest++ = *src++;

Значение src помещается по адресу, на который указывает dest. Затем оба ука- зателя увеличиваются и на следующей итерации передается следующий символ. Цикл прекращается, когда в src будет найден символ конца строки; в этой точке в dest присваивается значение null, работа функции завершена. На рис. 10.11 показано, как указатели движутся по строкам.

 

20