比如:
同志们21,朋友们
朋友21,同志们好要求加的空格如下:同志们 21,朋友们
朋友2 1,同志们好即从第5个字符开始加空格,假如第5个字符为汉字,则从第6个字符开始加空格。

解决方案 »

  1.   

    将字符串定义为 Widestring 应该可以解决吧
      

  2.   

    SysUtils里的ByteType()函数能返回此字节是双字节的前导或结尾字符或单个字符如英文字母和数字等, 自己查一下帮助, 时侯不早了明天还有问题的话再给你帮你写
      

  3.   

    可以函数可以做到大于5字符自动加一个空格。呵呵,怎么你的话这么像周总理在国庆节时的讲话呀 :)
    function Txscjs.xskcname: string;
    var
      id1,ss:string;
    begin
      id1:=trim(朋友们21,同志们); 
      if length(id)>5 then
      begin
      ss:=copy(id,0,5)+' '+copy(id,6,(length(id)-5));
      result:=ss;
      end
      else
      result:=id;
    end;
      

  4.   

    同志们 21,朋友们
    朋友2 1,同志们好即从第5个字符开始加空格,假如第5个字符为汉字,则从第6个字符开始加空格。------------------------------------------------------------------你的示例是在第六个字符位加空格 ,
      if ord(s[6]) > 128 then
        s := Copy(s,1,6) + ' ' + Copy(s,7,Length(s)-6)
      else
        s := Copy(s,1,5) + ' ' + Copy(s,6,Length(s)-5)  ;
      ShowMessage(s + '    ' + IntToStr(Length(s))) ;
      

  5.   

    用WideString就很方便了,根本就不存在这问题!
      

  6.   

    上面的不对,
    -----------------------------------------
      if ord(s[5]) > 128 then
        s := Copy(s,1,6) + ' ' + Copy(s,7,Length(s)-6)
      else
        s := Copy(s,1,5) + ' ' + Copy(s,6,Length(s)-5)  ;  ShowMessage(s + '    ' + IntToStr(Length(s))) ;
      

  7.   

    但 String 节省空间呀:) 一个字符只占一位
      

  8.   

    ws : WideString ;//一个字符占两位
      
      
      ws := Copy(ws,1,1) ;
      // ws = '1234' ----> '1' 
      // ws = '我爱我家' ----> '我'