首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >delphi在运行时修改pchar

delphi在运行时修改pchar
EN

Stack Overflow用户
提问于 2015-09-07 16:18:52
回答 2查看 226关注 0票数 0

我需要在运行时修改pchar字符串。请帮我处理这段代码:

代码语言:javascript
复制
var
  s:pChar;
begin
  s:='123123';
  s[0]:=#32; // SO HERE I HAVE EXCEPTION !!!
end.

现在我在Delphi 7中有例外了!我的项目没有使用本机pascal字符串(没有任何windows.pas类和其他)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-07 17:01:16

您可以:

代码语言:javascript
复制
procedure StrCopy(destination, source: PChar);
begin
  // Iterate source until you find #0
  // and copy all characters to destination.
  // Remember to allocate proper amount of memory
  // (length of source string and a null terminator)
  // for destination before StrCopy() call 
end;

var
  str: array[0..9] of Char;
begin
  StrCopy(str, '123123');
  s[0]:=#32;
end.
票数 0
EN

Stack Overflow用户

发布于 2015-09-07 16:42:24

字符串文本是只读的,不能修改。因此出现了运行时错误。你需要使用一个变量。

代码语言:javascript
复制
var
  S: array[0..6] of Char;
....
// Populate S with your own library function
S[0] := #32;

由于您没有使用Delphi运行时库,所以您需要自己的函数来填充字符数组。例如,您可以编写自己的StrLenStrCopy等。您将希望生成通过目标缓冲区长度的版本,以确保不会超出所述缓冲区。

当然,不使用内置字符串类型将是不方便的。您可能需要想出一些比特设字符数组更强大的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32442731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档