網頁

2016/08/12

[整理]如何計算出一個字元,在一個字串中出現的次數

作者:吳祐賓 

 

 

字元(Char)計數

原理:步進對字元計數

// D10 after
function OccurrencesOfChar(const S: string; const C: Char): Integer;
var
  Ch: Char;
begin
  Result := 0;
  // 使用 for-in 迴圈遍歷字串,語法更現代且安全
  for Ch in S do
  begin
    if Ch = C then
      Inc(Result);
  end;
end;

// D7 or Lazarus
function OccurrencesOfChar(const S: string; const C: char): integer;
var
  i: Integer;
begin
  result := 0;
  for i := 1 to Length(S) do
    if S[i] = C then
      inc(result);
end; 

// Example:
//var LNum = OccurrencesOfChar('Banana', 'a');
//Result LNum is 3




字串(String)計數




function Occurrences(const Substring, Text: string): Integer;
var
  Offset: Integer;
begin
  Result := 0;
  
  // 防呆處理:如果子字串為空,直接返回 0,避免無窮迴圈
  if (Substring = '') or (Text = '') then 
    Exit;

  // 尋找第一個匹配位置
  Offset := Pos(Substring, Text);
  
  while Offset <> 0 do
  begin
    Inc(Result);
    // 從「當前位置 + 子字串長度」繼續往後搜尋
    // 使用 Pos 的起始偏移量參數 (Offset + Length)
    Offset := Pos(Substring, Text, Offset + Length(Substring));
  end;
end;

// Example:
//var LNum = Occurrences('an', 'Banana');
//Result LNum is 2

資料來源:

沒有留言:

張貼留言