char GetCheckCode(char *pszSrcNoMsgID)
{
    int n=0;
    char *p=pszSrcNoMsgID;
    while(*p)
    {
      n+=(int)*p++;
    }
    n=n>=0?n:-n;
    n%=10;
    return n+48;
}

解决方案 »

  1.   

    function GetCheckCode(pszSrcNoMsgID:String):Char;
    var
      n,i:integer;
    begin
      n:=0;
      for i:=1 to Length(pszSrcNoMsgID) do
        n:=n+ord(pszSrcNoMsgID[i]);
      if n<0 then 
        n:=-n;
      n:=n mod 10;
      Result:=Chr(n+48);
    end;
      

  2.   

    function GetCheckCode(pszSrcNoMsgID: pchar):Char;
    var
      n, i:integer;
      p: pchar;  
    begin
        n:=0;
        strCopy(p, pszSrcNoMsgID);
        
        for i:=0 to StrLen(p)-1 do
         n := n + Ord(p[i]);  n:=abs(n) mod 10;
      Result:=Chr(n+48);
    end;
      

  3.   

    char GetCheckCode(char *pszSrcNoMsgID)
    {
        int n=0;
        char *p=pszSrcNoMsgID;  //把函数参数pszSrcNoMsgID指针地址负给指针P
        while(*p)
        {
          n+=(int)*p++;    //把函数的字符串参数的每个字符的acs码相加
        }
        n=n>=0?n:-n;            //取绝对值
        n%=10;                  //取出计算后的个位值
        return n+48;      //把个位值+48反回  
    }