RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
SysUtils.StrCopy Function

Copies a null-terminated string.

Pascal
function StrCopy(Dest: PChar; const Source: PChar): PChar;
C++
const char * StrCopy(const char * Dest, const const char * Source);

SysUtils

Use StrCopy to copy Source to Dest. StrCopy returns Dest.  

StrCpy does not perform any length checking. The destination buffer must have room for at least StrLen(Source)+1 characters. 

For length checking, use the StrLCopy function.  

C++ Examples: 

 

/*
The following example uses an edit control, a label, and a button
on a form. When the button is clicked, the label’s caption and the
edit control’s text are combined in a buffer. Then the buffer is
displayed in the label’s caption.
*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  char* szBuffer = new char[Label1->Caption.Length() + Edit1->Text.Length() + 1];
  // The following 2 lines are used in VCL applications
  StrCopy(szBuffer, Label1->Caption.c_str());
  StrCat(szBuffer, Edit1->Text.c_str());
  Label1->Caption = szBuffer;
  Edit1->Clear();
  delete [] szBuffer;
}

 

Delphi Examples: 

{
The following example uses an edit control, a label, and a button
on a form. When the button is clicked, the label’s caption and the
edit control’s text are combined in a buffer. Then the buffer is
displayed in the label’s caption.
} 
procedure TForm1.Button1Click(Sender: TObject);
var
  Buffer: PChar;
begin
  GetMem(Buffer,Length(Label1.Caption) + Length(Edit1.Text) + 1);
  StrCopy(Buffer, PChar(Label1.Caption));
  SysUtils.StrCat(Buffer, PChar(Edit1.Text));
  Label1.Caption := Buffer;
  Edit1.Clear;
  FreeMem(Buffer);
end;

 

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!