回 帖 发 新 帖 刷新版面

主题:关于字符串的一道题,请教

输入一行英文句子,句子中只有英文单词和空格。每个单词之间由若干个空格隔开,英文单词由大小写字母组成,统计此句子中的单词个数。

回复列表 (共8个回复)

沙发

function TForm1.GetString(S: String): integer;
var
  s1:String;
  i,m,n:integer;
begin
  s1:=s;
  while pos(#32,s1)>0 do
  begin
    memo2.lines.add(copy(s1,1,pos(#32,s1)-1)); 
    s1:=trim(copy(s1,pos(#32,s1)+2,length(s1)-pos(#32,s1)-1));
  end;
  result:=s1;
end; //自己参考下吧
end;

板凳

谢谢,我正在参考中

3 楼

可惜没有说明,凭本人的能力还是看不懂,谁能说的详细些

4 楼

我来写
请问haptis
trim是什么意思? #32是不是空格?
var
  a,b:char;
  m:integer;
begin
  b:=' ';m:=0;
  while not eoln do
    begin
      read(a);
      if (a<>' ')and(b=' ') then inc(m);
      b:=a;
    end;
  writeln(m);
end.

5 楼

那是我用delphi写的
是把单词取出来 放到memo里的 考虑是delphi写所以我没敢写全(见笑了,所以i,m,n都只申明了,没用) 
trim是去除字符串头尾的空格 
恩#32是空格

6 楼

贺天行宝:谢谢你,你帮我了好大的忙,不知道将来还能向你请教吗?再次谢谢

7 楼

当字符串输完时末尾再加个空格
单词个数就是空格数

8 楼

注意: 每个单词之间由若干个空格隔开!!
所以当单词之间有多个空格时,要把多余的去掉!

我来回复

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