Delphi 字符串函数

目标类型 源类型 复制函数
pchar string strpcopy
pchar pchar strcopy
pchar 'string' =
string pchar =
string string =
string 'string' =
定义 说明
Pos(substr, str) 返回子字符串的位置 System
AppendStr(str1,str2) str2 连接到 str1 尾,不建议使用 SysUtils
Length(str) 取字符串长度  
StrLen(pchar) 返回字符串长度,nil 时异常  
StrEnd(pchar) 返回指向字符串结尾指针,nil 时异常  
StrMove(destPchar,sourPchar,len) 复制 len 个字符  
StrCat(destPchar,sourPchar) 返回两个字符串连接后的 PChar  
StrLCat(destPchar,sourPchar,maxLen) 返回两个字符串连接后的 PChar,有结果长度限制  
StrCopy(destPchar,sourPchar) 复制字符串  
StrECopy(destPchar,sourPchar) 复制字符串到另一个的结尾  
StrLCopy(destPchar,sourPchar,maxLen) 复制字符串,有长度限制  
StrPCopy(destPchar,sourString) 复制字符串  
StrPLCopy(destPchar,sourString,maxLen) 复制字符串,有长度限制  
StrScan(Pchar,char) 返回字符在字符串中第一处出现的指针,无返回 nil  
StrRScan(Pchar,char) 返回字符在字符串中最后一处出现的指针,无返回 nil  
StrPas(Pchar):string 指针转为字符串,直接赋值也可  
StrPos(Pchar1,Pchar2) 返回找到的第一个子字符串处的指针  
StrAlloc(size):Pchar 分配指定大小的字符串指针  
StrNew(Pchar):Pchar 分配与另一个相同大小的字符串指针  
StrDispose(Pchar) 释放分配的字符串指针  
StrBufSize(Pchar) 返回指针分配时的大小  
LeftStr(str,len) 取字符串左边部分 StrUtils
MidStr(str,start,len) 取字符串中间部分,从 1 起 StrUtils
RightStr(str,len) 取字符串右边部分 StrUtils
StringReplace(str,old,new,flag) 字符串替换

flag 包含 rfReplaceAll 时替换所有匹配
flag 包含 rfIgnoreCase 时忽略字母的大小写

 
StringOfChar(char,count) 返回由若干个字符连接而成的字符串 System
ResemblesText(const str1,str2) 返回两个字符串是否相似
AnsiContainsText(string,substr) 返回是否包含子字符串
StartsText(substr, string) 返回是否以子字符串开头
EndsText(substr, string) 返回是否以子字符串结尾
ReplaceText(string, find, to) 返回字符串替换后的结果
MatchText(str, strArray) 返回字符串是否位于数组中
IndexText(str, strArray) 返回字符串在数组中的位置,无返回 -1
DupeString(string, cnt) 返回字符串重复连接的结果
ReverseString(string) 返回倒置的字符串
StuffString(string,start,len,tostr) 返回将字符串指定位置替换后的结果,位置从 1 起 StrUtils
RandomFrom(strArray) 随机返回数组中的一个字符串
IfThen(cond,TrueStr,FalseStr) 根据条件返回其中一个字符串
SearchBuf(...) 搜索子字符串所在位置,无则返回 nil
NewStr(string):PString 返回在堆中分配的字符串指针,不建议使用
DisposeStr(pstring) 释放用 NewStr 分配的指针
AssignStr(pstr,string) 更新字符串指针,原指向的资源自动释放
    UpperCase(string) 返回字符串的大写形式
 StrUpper(Pchar) 返回指针,内容转为大写
WideUpperCase(widestring) 返回双字节转大写形式的字符串
    LowerCase(string) 返回字符串的小写形式
 StrLower(Pchar) 返回指针,内容转为小写
WideLowerCase(widestring) 返回双字节转小写形式的字符串
    CompareStr(str1,str2) 比较字符串,返回值为 正数/0/负数
WideCompareStr(str1,str2) 双字节,同上
    CompareText(str1,str2)
WideCompareText(str1,str2) 双字节
CompareMem(p1,p2,length) 比较指定长度内存数据是否相同
    SameText(str1,str2) 比较字符串是否相同,不区分大小写
WideSameText(str1,str2) 双字节
AnsiSameStr(str1,str2) 比较字符串是否相同,区分大小写
StrIComp(pchar1,pchar2) 比较字符串,返回值为 正数/0/负数,不区分大小写
StrLComp(pchar1,pchar2,maxLen) 比较字符串,有长度限制,区分大小写
StrLIComp(pchar1,pchar2,maxLen) 比较字符串,有长度限制,不区分大小写
StrComp(pchar1,pchar2) 比较字符串,返回值为 正数/0/负数,区分大小写
Trim(string) 返回去除左右空白的字符串,小于 32 的字符视作空白
TrimLeft(string) 返回去除左空白的字符串
TrimRight(string) 返回去除右空白的字符串
QuotedStr(string) 返回单引号成双的字符串
AnsiExtractQuotedStr(PChar,char) 返回脱去边界(以 char 为边界)的字符串
AnsiDequotedStr(string, Char) 返回脱去引号(以 char 为引号)的字符串
AdjustLineBreaks(string, style) 返回标准回车换行格式字符串
IsValidIdent(string) 返回是否为标准标识符
ByteType(const S: string; Index: Integer): TMbcsByteType 返回字符串S位置Index上的字符在MBCS中类型 SysUtils
StrByteType(Str: PChar; Index: Cardinal): TMbcsByteType 返回指针字符串Str位置Index上的字符在MBCS中类型 SysUtils
ByteToCharLen(const S: string; MaxLen: Integer): Integer 返回字符串中有多少个多字节字符 SysUtils
CharToByteLen(const S: string; MaxLen: Integer): Integer 返回字符串S中有多少个字符 SysUtils
ByteToCharIndex(const S: string; Index: Integer): Integer 返回字符位置对应的多字节字符位置 SysUtils
CharToByteIndex(const S: string; Index: Integer): Integer 返回多字节字符位置对应的字符起始位置 SysUtils
StrCharLength(const Str: PChar): Integer 返回第一个字符的宽度
StrNextChar(const Str: PChar): PChar 返回字符指针Str的下一个字符指针
CharLength(const S: String; Index: Integer): Integer 返回字符串中指定位置的字符宽度
NextCharIndex(const S: String; Index: Integer): Integer 返回下一个字符的位置
IsPathDelimiter(const S: string; Index: Integer): Boolean 返回字符串S中指定位置Index上是否是一个路径分隔符
IsDelimiter(const Delimiters, S: string; Index: Integer): Boolean 返回字符串S中指定位置Index上是否是一个分隔符Delimiters
IncludeTrailingPathDelimiter(const S: string): string 返回包括最后路径分隔符
IncludeTrailingBackslash(const S: string): string 返回包括最后斜线
ExcludeTrailingPathDelimiter(const S: string): string 返回排除最后路径分隔符
ExcludeTrailingBackslash(const S: string): string 返回排除最后斜线
LastDelimiter(const Delimiters, S: string): Integer 返回最后一个分隔符的位置
AnsiPos(const Substr, S: string): Integer 返回子串Substr在字符中第一次出现的位置,从 1 起
AnsiStrPos(Str, SubStr: PChar): PChar 返回指针子串Substr在指针字符中第一次出现的指针位置,从 1 起
AnsiStrRScan(Str: PChar; Chr: Char): PChar 返回在指针字符串Str搜索字符Chr最后一个出现的地址
AnsiStrScan(Str: PChar; Chr: Char): PChar 返回在指针字符串Str搜索字符Chr第一个出现的地址
StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string 返回替换后的字符串
WrapText(const Line, BreakStr: string; const BreakChars: TSysCharSet; MaxCol: Integer): string
WrapText(const Line: string; MaxCol: Integer = 45): string; overload
返回对字符串自动换行
FindCmdLineSwitch(const Switch: string; const Chars: TSysCharSet; IgnoreCase: Boolean): Boolean; overload;
function FindCmdLineSwitch(const Switch: string): Boolean; overload;
function FindCmdLineSwitch(const Switch: string; IgnoreCase: Boolean): Boolean; overload
返回程序命令参数是否找到

SearchBuf 函数

SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String; Options: TStringSearchOptions = [soDown]): PChar
参数 意义
Buf: PChar 搜索范围
BufLen 搜索范围大小
SelStart 选择文本开始位置
SelLength 选择文本长度
SearchString 搜索的字符串
[Options] 选项:

soDown : 向下搜索
soMatchCase : 区分大小写
soWholeWord : 匹配整个单词