Копирование содержимого строки в массив char
Я хочу скопировать содержимое в строку в массив char.
Могу ли я использовать этот код StrLCopy(C, pChar(@S[1]), high(C));
В настоящее время я использую Delphi 2006. Будут ли какие-либо проблемы, если я обновляю версию Delphi из-за поддержки Unicode в новых версиях?
Если нет, каков может быть код для этого преобразования?
Ответы
Ответ 1
Когда вы копируете строку в массив, предпочитайте StrPLCopy
.
StrPLCopy(C, S, High(C));
Это будет работать во всех версиях Delphi, даже если работает Unicode. Типы символов C
и S
должны быть одинаковыми; не пытайтесь использовать эту функцию для преобразования символов Ansi и Unicode.
Но StrLCopy
тоже хорошо. Однако вам не нужно иметь столько кода указателя. Delphi уже знает, как преобразовать строку в PChar:
StrLCopy(C, PChar(S), High(C));
Ответ 2
Это работает в быстрой проверке:
var
ch: array[0..10] of Char;
c: Char;
x: Integer;
st: string;
begin
s := 'Testing';
StrLCopy(PChar(@ch[0]), PChar(s), High(ch));
x := 100;
for c in ch do
begin
Canvas.TextOut(x, 100, c);
Inc(c, Canvas.TextWidth(c) + 3);
end;
end;