回 帖 发 新 帖 刷新版面

主题:字符串问题,求字符串内单词数

我想 输入一字符串,求出其中的单词数(空格分隔,一定有非空格字符)
我写了如下代码,为什么不对呢?
CLS
INPUT "Please input a string:"; str1$
FOR i = 2 TO LEN(str1$)
    IF MID$(str1$, i, 1) = " " AND MID$(str1$, i - 1, i) <> " " THEN num = num+1
NEXT i
PRINT "The word is :"; num
大哥们,咋回事?

回复列表 (共13个回复)

沙发

本人是在是看不出你有什么错,做的很好啊~~

板凳


   cls
   input str$
   i=1
   do while instr(str$,i," ")<> 0
      if instr(str$,i," ") >0 then 
       m=m+1
       i=instr(str$,i," ")+1
     end if 
  wend 
   print m
  end 
   不知道对不对啊

3 楼

回LZ
字浮串常量不能以空格开头,结束,所以你的代码只能计算出str1$中间的空格数,你只要在此基础上加1就OK了

4 楼

楼上那位,有几个空格,不就有几个英文单词吗

5 楼

楼上的,
我写的清清楚楚的:字浮串前头和结尾的不算在内,那么你还觉得空格数等于单词数
Thank you!
中间几个空格?   1个
几个单词?    1+1=2,不对么?

6 楼


也许吧[em18]

7 楼

还是有问题,不是简单加几就能得出正确结果的,你把程序跑一遍试试,还是有问题。

8 楼

这个解释有问题啊,真的,你们谁也别乱猜,自己用QB或VB运行下,不费什么时间的,这样算根本不准啊。

9 楼

CLS
INPUT "Please input a string:"; str1$
[color=ff00ff]num=1
str1$=ltrim$(rtrim$(str1$))[/color]
FOR i = 2 TO LEN(str1$)-1
    IF MID$(str1$, i, 1) = " " AND MID$(str1$,[color=ff00ff] i + 1, 1[/color]) <> " " THEN num = num+1
NEXT i
PRINT "The word is :"; num

10 楼

INPUT "Please input a string:"; str1$
str1$=ltrim$(rtrim$(str1$))
do until str1$=""
   num=num+1
   str1$=ltrim$(mid$(str1$,instr(str1$," ")))
loop
PRINT "The word is :"; num

我来回复

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