4条回答 默认 最新
懒得动 2016-12-26 11:51关注这里很好理解啊,我们来举个例子,假如我输入
i love you
i love you
当我输入i的时候,首先++nc,这没有疑问,然后通过判断语句i不是换行\n,不是空格,也不是制表符\t。并且state初始化的是OUT,所以执行
else if 下面的语句
,即改变state的状态,并且增加一个单词 ++nw,你可能会疑问,我才输入一个字符怎么就增加一个单词,那是因为,不管第一个单词是几个字符,
只要下一次输入的是空格或者制表符或者\n,就是一个单词。好!不说废话,输入i后紧接着我们输入一个空格,程序会怎么样呢?废话,当然是++mc,state = out,然后等下一个输入,下一个输入l,++nc,然后呢state=in ,++nw,然后输入o,++nc,然后输入v,++nc,然后输入e,++nc,再然后又是一个空格,++nc,state=out。然后输入的是y,++nc,state=in,++nw
以此类推 总之一句话每个单词输入第一个字符的时候++nw,而不是单词输完后++nw 就是这么简单,转换一下思维就很容易理解了评论 打赏 举报解决 2无用
