如何将字符串的一部分计算到特定字符?

问题描述 投票:0回答:1

我有元素存储在数组中,格式为name#email,我想按名称搜索数组,然后只输出电子邮件,即#.之后的内容,例如,如果我按名称Donald搜索时元素是donald#[email protected],输出应该是[email protected]

我的想法是从长度(名称)中减去长度(字符串)。我怎么只计算#?

pascal
1个回答
0
投票

要在字符串中搜索pascal中子字符串的位置,请使用Pos()函数。

在您的情况下,子字符串将由名称加上#字符组成。


提取名称后加上#的简单函数如下所示:

function ExtractInfo( const searchName,data : String) : String;
var
 p : Integer;
begin
  p := Pos(searchName+'#',data); // Find position of name + '#' in data
  if (p > 0) then
    Result := Copy(data,p+Length(searchName)+1) // Copy after name and `#`
  else
    Result := '';
  // Note 1, if Result is not a valid way to assign the function result, 
  // use ExtractInfo instead.
  // Note 2, if only two parameters are not allowed in your pascal Copy function, 
  // add Length(data) as the third parameter.
end;

要测试功能:

WriteLn(ExtractInfo('donald','donald#[email protected]'));
© www.soinside.com 2019 - 2024. All rights reserved.