回 帖 发 新 帖 刷新版面

主题:字符串的处理??

读如如下字符串数据:
yaolin 87 90 Y N 0


怎样把其中的东西分别提取出来 让变为 
n:string;
q,p,l:integer;
b,x:char;

n:=yaoling;
q:=87;
p:90;
b:=Y;
x:=N;
l:=0;

回复列表 (共6个回复)

沙发

var
  s,n:string;
  i,p,q,l:integer;
  b,x:char;
 begin
  read(n);
  s:=copy(n,1,pos(' ',n)-1);
  writeln('n:=',s);
  delete(n,1,pos(' ',n));
   s:=copy(n,1,pos(' ',n)-1);
    writeln('p:=',s);
    delete(n,1,pos(' ',n));
s:=copy(n,1,pos(' ',n)-1);
    writeln('q:=',s);
    delete(n,1,pos(' ',n));
s:=copy(n,1,pos(' ',n)-1);
    writeln('b:=',s);
    delete(n,1,pos(' ',n));
s:=copy(n,1,pos(' ',n)-1);
    writeln('x:=',s);
    delete(n,1,pos(' ',n));
s:=copy(n,1,pos(' ',n)-1);
    writeln('l:=',s);
    delete(n,1,pos(' ',n));
     end.
这样,还是比较麻烦,怎么优化。。。???/

板凳

空格来看是不是一个单词或数据的结束,是的话,前面取出COPY

3 楼

我不是问怎么输出那个东西  
  是想问怎么变成那个数据类型`。。后面还要用的``

4 楼

用VAL(st,value,code)函数,将字串st转化为数value,code返回检测出错的第一个位置,否则返回0
再结合黄叶纷飞提取ST的方法

5 楼

name:='';
      read(ch);
      while ch<>' 'do
      begin
      name:=name+ch;
      read(ch);
      end;
     read(qimou);
     read(banji);
     read(ch);
     read(ganbu);
     read(ch);
     read(xibu);
     read(lunwen);
     readln;
     end;

6 楼

name:='';
      read(ch);
      while ch<>' 'do
      begin
      name:=name+ch;
      read(ch);
      end;
     read(qimou);
     read(banji);
     read(ch);
     read(ganbu);
     read(ch);
     read(xibu);
     read(lunwen);
     readln;
     end;
这个是信息学里的一道题上的字符处理方法 不错!
这是我的
 read(ch);
      while ch<>' ' do
      begin
        name:=name+ch;
        read(ch);
      end;
      readln(score1,score2,ch,ganbu,ch,xibu,lunwen);
简化了

我来回复

您尚未登录,请登录后再回复。点此登录或注册