字符串与指针学习2lowercase()

参考SysUtils单元,自己试了一试写一个lowercase函数。

还是delphi里的函数比较高效。

function lower(const s:string):string;
var
  i,len:integer;
  P:pchar;
  ch:char;
begin
  len:
=length(s);
  setlength(result,len);
//必须为result声明一个内存空间,否则p^:=ch;将会报错。因为没有存储的地方
  p:
=pchar(result);//很巧的地方,只要指针顺序为每个空间存储新内容就可以。
  
for i:=1 to len do
  
begin
    ch:
=s[i];//如果不引进一个char类型,则无法使用下面的inc(ch,32),只能使用char(ord(s[i])+32);
   
if (ch>='A'and (ch<='Z'then
    inc(ch,
32);
     p^:
=ch;
    inc(p);
  
end;
end;

总结:

不能直接为指针赋值,必须要为其声明一个空间。

可以:p:=stralloc(len);或者setlength(s,len);p:=pointer(s);顺带与一个变量“挂钩”。

原文地址:https://www.cnblogs.com/samsonleung/p/1293638.html