如“掌声是多方收集d” 这个字符串包含了d,
给点程序

解决方案 »

  1.   

    var   
              s:string;
              i:     integer;
      begin
              s:='掌声是多方收集d';
              for   i:=1   to   length(s)   do
              begin
                      if   ord(s[i])<128   then //0-127 为键盘值,大于127 的为汉字
                      begin
                         showmessage(s[i]);
                      end;
              end;
     end;
      

  2.   

    这样行不行?
    var 
      str: WideString;
    begin
      str := '掌声是多方收集d';
      if Length(str) * 2 > Length(AnsiString(str)) then 
        包含非汉字字符
      

  3.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
    s:string;
    j:integer;
    begin
      s:='掌声是多方收集d';
      for J :=1 to length(s) do
      if UpCase(s[j]) in ['A'..'Z'] then  begin
        showmessage('含有字母');
        break;
      end;
    end;
      

  4.   

    可用正则表达式:
    uses ComObj;procedure TForm1.Button1Click(Sender: TObject);
    const
      testStrings: array[0..4] of string =
        ('全汉字', '字母abc', '(标点)', '全角数字12', '外国语はのね');
    var
      vRegExp: OleVariant;
      I: Integer;
    begin
      vRegExp := CreateOleObject('VBScript.RegExp'); // 创建正值对象
      vRegExp.Pattern := '^[\u4e00-\u9fa5]+$'; // 样板表达式
      vRegExp.Global := True; // 全局适用
      for I := Low(testStrings) to High(testStrings) do
      begin
        if not vRegExp.Test(testStrings[I]) then
        begin
          ShowMessage(testStrings[I] + ' 非全汉字');
        end;
      end;
    end;\u4e00-\u9fa5 --- 表示汉字在Unicode中的范围。
      

  5.   

    LZ试了没?
    我试了可以找出非汉字哦
    不过& 这个显示为空