文字列のコピー
明解C言語 入門編 > 11. 文字列とポインタ >
文字列のコピー
Delphi
program Project1;{$APPTYPE CONSOLE}
uses
SysUtils;function str_cpy(d:PChar; s:PChar):PChar;
begin
result := d;repeat
d^ := s^;
Inc(s);
Inc(d);
until (s^ = #0);d^ := s^; { \0 も COPY }
end;procedure main();
const
st1: String = '12345';
st2: String = 'ABC';pt1: array[0..255] of Char = '12345';
pt2: array[0..255] of Char = 'ABC';
var
i: Integer;
begin
Writeln(Format('st1 = %s', [st1]));
Writeln(Format('st2 = %s', [st2]));
Writeln('');st1 := st2;
Writeln(Format('st1 = %s', [st1]));
Writeln(Format('st2 = %s', [st2]));
Writeln('');
Writeln(Format('pt1 = %s', [pt1]));
Writeln(Format('pt2 = %s', [pt2]));
Writeln('');str_cpy(pt1, pt2);
write('pt1 = ');
for i := 0 to 4 do
if pt1[i] = #0 then
write(' ')
else
write(pt1[i]);
Writeln('');
Writeln(Format('pt2 = %s', [pt2]));
Writeln('');
pt1 := '12345';
Writeln(Format('pt1 = %s', [pt1]));
Writeln(Format('pt2 = %s', [pt2]));
Writeln('');StrCopy(pt1, pt2);
write('pt1 = ');
for i := 0 to 4 do
if pt1[i] = #0 then
write(' ')
else
write(pt1[i]);
Writeln('');
Writeln(Format('pt2 = %s', [pt2]));
Writeln('');
end;begin
main;
end.
実行結果
S:\>lesson085\project1.exe
st1 = 12345
st2 = ABCst1 = ABC
st2 = ABCpt1 = 12345
pt2 = ABCpt1 = ABC 5
pt2 = ABCpt1 = 12345
pt2 = ABCpt1 = ABC 5
pt2 = ABC