呃,我没办法回信息了
创新互联公司专业为企业提供礼县网站建设、礼县做网站、礼县网站设计、礼县网站制作等企业网站建设、网页设计与制作、礼县企业网站模板建站服务,十余年礼县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
javascript:这个直接存为html就行了
html
/html
script type="text/javascript"
var str = prompt("请输入字符串:","");
var count = 0;
var strArr = str.split(" ");
for(var i=0; i strArr.length; i++)
{
if(strArr[i].match("[a-zA-Z']+"))
{
++ count;
}
}
alert("英文单词个数为:" +count);
/script
java:
public static long getEnglishStrLength(String str)
{
long count = 0;
//如ok,let's go,每个单词只能以空格来区分(如果要加上其它区分如 "," 号,那么就多作个循环吧)
String [] strArr = str.split(" ");
//条件,每个单词必需是英文字母和"'"号,如上面的 let's 算是一个单词
for(int i=0; i strArr.length; i++)
{
if(strArr[i].matches("^[a-zA-Z']+"))
{
++ count;
}
}
return count;
}
package main
import (
"fmt"
"os"
)
func main() {
if len(os.Args) 2 {
fmt.Println("Please Input File Name!")
return
}
file, err := os.Open(os.Args[1])
if err != nil {
return
}
buff := make([]byte, 1000)
_, err = file.Read(buff)
if err != nil {
return
}
a, c, d, e, _ := Sum(buff)
fmt.Printf("a c d e \n%d %d %d %d\n", a, c, d, e)
}
func Sum(buff []byte) (a, c, d, e, def int) {
for i := 0; i len(buff); i++ {
switch buff[i] {
case 'a':
a++
case 'c':
c++
case 'd':
d++
case 'e':
e++
default:
def++
}
}
return
}
如果你是指一串单词,空格隔开的,统计词频,就用列表和字典来。
比如输入的是这样:this one ok this one two three go end at end
dic1={}
n=input().split()
for i in n:
缩进if i in dic1:dic1[i]+=1
缩进else:dic1[i]=1
print(dic1)
谭浩强C语言书上的例题,虽然那道题目是用数组做的,但是思路还是可以借鉴的。
设置一个标志word,表示单词是否开始。如果一直是空格的话,word=0,一旦看到不是空格,并且word是0,则意味着一个新单词开始,将个数增1并将word置为1。
#include stdio.h
main()
{ char c;
int i,num=0,word=0;
while((c=getchar())!='\n')
if(c==' ') word=0;
else if(word==0)
{ word=1; num++; }
printf("There are %d words in the line\n",num);
}
明显不太对,你的判断,\r好像不是空格的转义字符吧?判断的条件应该是读取字符,然后判断是不是回车,在内循环中判断是不是空格,如果是空格的话就count++,不是的话继续执行,如果需要打印出每个单词,你还需要数组。。。。
主要是你的 c!="\0" 和两处 c==" " 的问题,因为c是char 字符类型,而双引号""里面的内容算是字符串,尽管只有1位也还是字符串,跟字符不一样。所以比较不出来。
然后我又把 c!='\0' 这里的 '\0' 改成了 '\n',\0我实在是不太懂,因此换成了\n,这样每输入一个回车就算是一句。
然后我这里就可以运行了。欢迎LZ改改看~