问题描述
- 用C语言计算文本单词总数及每个单词出现频率
-
C语言计算创建文本中单词的个数(单词以空格或者逗号等其他非字母符号分隔)且每个单词出现的次数
解决方案
直接单词放一个hashtable,然后单词做key,个数做value
解决方案二:
用VB写一个给你
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim s As String = "Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth."
Dim query = Regex.Split(s, "W+|s") _
.Select(Function(x) LCase(x)) _
.Where(Function(x) x <> "") _
.GroupBy(Function(x) x) _
.OrderByDescending(Function(x) x.Count()) _
.Select(Function(x) String.Format("{0}出现了{1}次", x.Key, x.Count))
For Each item As String In query
Console.WriteLine(item)
Next
End Sub
End Module
解决方案三:
这是结果
that出现了13次
the出现了11次
we出现了10次
to出现了8次
here出现了8次
a出现了7次
and出现了6次
nation出现了5次
can出现了5次
of出现了5次
have出现了5次
for出现了5次
it出现了5次
not出现了5次
this出现了4次
in出现了4次
dedicated出现了4次
are出现了3次
great出现了3次
so出现了3次
who出现了3次
is出现了3次
dead出现了3次
they出现了3次
us出现了3次
shall出现了3次
people出现了3次
our出现了2次
on出现了2次
new出现了2次
conceived出现了2次
men出现了2次
war出现了2次
or出现了2次
long出现了2次
field出现了2次
dedicate出现了2次
gave出现了2次
but出现了2次
living出现了2次
far出现了2次
what出现了2次
rather出现了2次
be出现了2次
which出现了2次
from出现了2次
these出现了2次
devotion出现了2次
four出现了1次
score出现了1次
seven出现了1次
years出现了1次
ago出现了1次
fathers出现了1次
brought出现了1次
forth出现了1次
continent出现了1次
liberty出现了1次
proposition出现了1次
all出现了1次
created出现了1次
equal出现了1次
now出现了1次
engaged出现了1次
civil出现了1次
testing出现了1次
whether出现了1次
any出现了1次
endure出现了1次
met出现了1次
battle出现了1次
come出现了1次
portion出现了1次
as出现了1次
final出现了1次
resting出现了1次
place出现了1次
those出现了1次
their出现了1次
lives出现了1次
might出现了1次
live出现了1次
altogether出现了1次
fitting出现了1次
proper出现了1次
should出现了1次
do出现了1次
larger出现了1次
sense出现了1次
consecrate出现了1次
hallow出现了1次
ground出现了1次
brave出现了1次
struggled出现了1次
consecrated出现了1次
above出现了1次
poor出现了1次
power出现了1次
add出现了1次
detract出现了1次
world出现了1次
will出现了1次
little出现了1次
note出现了1次
nor出现了1次
remember出现了1次
say出现了1次
never出现了1次
forget出现了1次
did出现了1次
unfinished出现了1次
work出现了1次
fought出现了1次
thus出现了1次
nobly出现了1次
advanced出现了1次
task出现了1次
remaining出现了1次
before出现了1次
honored出现了1次
take出现了1次
increased出现了1次
cause出现了1次
last出现了1次
full出现了1次
measure出现了1次
highly出现了1次
resolve出现了1次
died出现了1次
vain出现了1次
under出现了1次
god出现了1次
birth出现了1次
freedom出现了1次
government出现了1次
by出现了1次
perish出现了1次
earth出现了1次
请按任意键继续. . .
解决方案四:
稍微修改,按照字母序输出:
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim s As String = "Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth."
Dim query = Regex.Split(s, "W+|s") _
.Select(Function(x) LCase(x)) _
.Where(Function(x) x <> "") _
.GroupBy(Function(x) x) _
.OrderBy(Function(x) x.Key) _
.Select(Function(x) String.Format("{0}出现了{1}次", x.Key, x.Count))
For Each item As String In query
Console.WriteLine(item)
Next
End Sub
End Module
解决方案五:
这是字母序的结果
a出现了7次
above出现了1次
add出现了1次
advanced出现了1次
ago出现了1次
all出现了1次
altogether出现了1次
and出现了6次
any出现了1次
are出现了3次
as出现了1次
battle出现了1次
be出现了2次
before出现了1次
birth出现了1次
brave出现了1次
brought出现了1次
but出现了2次
by出现了1次
can出现了5次
cause出现了1次
civil出现了1次
come出现了1次
conceived出现了2次
consecrate出现了1次
consecrated出现了1次
continent出现了1次
created出现了1次
dead出现了3次
dedicate出现了2次
dedicated出现了4次
detract出现了1次
devotion出现了2次
did出现了1次
died出现了1次
do出现了1次
earth出现了1次
endure出现了1次
engaged出现了1次
equal出现了1次
far出现了2次
fathers出现了1次
field出现了2次
final出现了1次
fitting出现了1次
for出现了5次
forget出现了1次
forth出现了1次
fought出现了1次
four出现了1次
freedom出现了1次
from出现了2次
full出现了1次
gave出现了2次
god出现了1次
government出现了1次
great出现了3次
ground出现了1次
hallow出现了1次
have出现了5次
here出现了8次
highly出现了1次
honored出现了1次
in出现了4次
increased出现了1次
is出现了3次
it出现了5次
larger出现了1次
last出现了1次
liberty出现了1次
little出现了1次
live出现了1次
lives出现了1次
living出现了2次
long出现了2次
measure出现了1次
men出现了2次
met出现了1次
might出现了1次
nation出现了5次
never出现了1次
new出现了2次
nobly出现了1次
nor出现了1次
not出现了5次
note出现了1次
now出现了1次
of出现了5次
on出现了2次
or出现了2次
our出现了2次
people出现了3次
perish出现了1次
place出现了1次
poor出现了1次
portion出现了1次
power出现了1次
proper出现了1次
proposition出现了1次
rather出现了2次
remaining出现了1次
remember出现了1次
resolve出现了1次
resting出现了1次
say出现了1次
score出现了1次
sense出现了1次
seven出现了1次
shall出现了3次
should出现了1次
so出现了3次
struggled出现了1次
take出现了1次
task出现了1次
testing出现了1次
that出现了13次
the出现了11次
their出现了1次
these出现了2次
they出现了3次
this出现了4次
those出现了1次
thus出现了1次
to出现了8次
under出现了1次
unfinished出现了1次
us出现了3次
vain出现了1次
war出现了2次
we出现了10次
what出现了2次
whether出现了1次
which出现了2次
who出现了3次
will出现了1次
work出现了1次
world出现了1次
years出现了1次
请按任意键继续. . .
解决方案六:
下载一个Visual Studio 2013,推荐Visual Studio Community 2013 with Update 4(社区版)
http://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs#d-community
然后新建一个VB控制台项目,将这些代码贴进去就可以了。
时间: 2024-12-31 19:26:02