社区
C++ 语言
帖子详情
编写一个程序,用于统计文件中单词的总数,不同单词的数目
nokia7600
2004-10-15 10:18:51
编写一个程序,用于统计文件中单词的总数,不同单词的数目。(假设输入文件中只包含字母和空格)
eg: I love Beijing and I love Shanghai.
单词总数:7
不同单词数目:5
...全文
1995
24
打赏
收藏
编写一个程序,用于统计文件中单词的总数,不同单词的数目
编写一个程序,用于统计文件中单词的总数,不同单词的数目。(假设输入文件中只包含字母和空格) eg: I love Beijing and I love Shanghai. 单词总数:7 不同单词数目:5
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangfasheng
2004-10-16
打赏
举报
回复
typedef struct WORDNODE
{
char *word;
struct WORDNODE *next;
}WORDNODE;
Insert(WORDNODE *Link,char *word);//用一个单链表保存不同的单词,
//每插入一个单词都先进行比较,如果现在正要插入的单词在链表中不存在,
//则将其插入,并且 WordNum++
int main(int argc,char *argv[])
{
char s[]="Golden Global View";
char *d=" ";
char *p;
int AllWordNum=0;//所有单词个数
int WordNum=0;//不同单词个数
WORDNODE *Link=NULL;
p=strtok(s,d);
while(p)
{
AllWordNum++;
Insert(Link,p);
p=strtok(NULL,d);
}
输出所有单词个数:AllWordNum
输出不同单词个数:WordNum
return 0;
}
willko
2004-10-16
打赏
举报
回复
//应用了STL MAP,拿 ftkghost(小鹏) 大侠的修改的
#include<iostream>
#include<fstream>
#include<string>
#include<set>
using namespace std;
int main()
{
ifstream infile("data.dat");
string s;
set<string> sstr; //储存不重复的单词,然后只需知道这个集合的元素个数就可以求出“不同单词数目”
int i=0; //统计单词总数
while(true)
{
infile>>s;
if ( !infile ) //如果是文件尾结束循环
break;
else
{
cout<<s<<" ";
i++;
sstr.insert(s);
}
}
cout<<endl;
cout << "单词总数:" << i << endl;
cout << "不同单词数目:" << sstr.size() << endl;
cout << "回车键结束...";
cin.get();
return 0;
}
jf_zhang
2004-10-16
打赏
举报
回复
不懂,有些东西没见过,不知道是什么意思
malligator
2004-10-16
打赏
举报
回复
不知所云
能解释一下么?
willko
2004-10-16
打赏
举报
回复
#include<iostream>
#include<fstream>
#include<string>
#include<set>
using namespace std;
int main()
{
ifstream infile("data.dat");
string s;
set<string> sstr;
int i=0;
while(true)
{
infile>>s;
if ( !infile )
break;
else
{
cout<<s<<" ";
i++;
sstr.insert(s);
}
}
cout<<endl;
cout << "单词总数:" << i << endl;
cout << "不同单词数目:" << sstr.size() << endl;
cout << "回车键结束...";
cin.get();
return 0;
}
renheihei
2004-10-16
打赏
举报
回复
在这里,set 和 map 那个效率更高呢?
renheihei
2004-10-16
打赏
举报
回复
set用的好!
renheihei
2004-10-16
打赏
举报
回复
mark
lqw0205
2004-10-16
打赏
举报
回复
1.建表会不会开销太大了,能不能在原输入串中比较
2.从后往前找,因为通常一段话在谈一件事情,从前
往后和从后往前实现上没有很大差异,效率上却好
像要高点
Jinhao
2004-10-16
打赏
举报
回复
用std::set很好呀
ftkghost
2004-10-16
打赏
举报
回复
用链表解决碰撞
ftkghost
2004-10-16
打赏
举报
回复
可以建一个Hash表存放单词(以及单词出现次数)
chang5
2004-10-16
打赏
举报
回复
小弟正学stl ,练练手~~~~~~
chang5
2004-10-16
打赏
举报
回复
#pragma warning (disable:4786)
#include <iostream>
#include <fstream>
#include <map>
#include <string>
using namespace std;
int main(int argv,char *argc[])
{
ifstream in;
string s;
map<string,int> m;
in.open(argc[1]);
if(!in) return 1;
while(in>>s){
m[s]++;
}
int sum=0;
map<string,int>::iterator p;
for(p=m.begin();p!=m.end();p++)
sum+=p->second;
map<string,int>::value_type
cout<<"File contains "<<sum<<" words"<<endl;
cout<<"Has "<<m.size()<<" different words."<<endl;
return 0;
}
antoniusguo
2004-10-16
打赏
举报
回复
用vector大概可以吧
只要是数组里有的就不加.没的就加进去,最后拿数组长度就行了
错了不管......
我只是来灌灌水
wxu2
2004-10-16
打赏
举报
回复
修正一下
if (x>=0 && n>0 )这句改成 if (x>=0)就可以了
如果数组维数计数为0,遍历数组的函数返回的时候直接返回-1
wxu2
2004-10-16
打赏
举报
回复
使用动态数组作为不同单词的列表
思路如下:
定义结构数组,数组维数计数器n置0
for (遍历所有单词)
{
获取一个单词c
X=调用一个遍历数组的函数,返回数组索引// 如果返回为-1则表示没找到
if (x>=0 && n>0 )
数组[X]->单词计数++
else
{
数组维数计数器n++
根据n 重新分配数组
数组[n]->单词=c
数组[n]->单词计数=1
}
}
ftkghost
2004-10-16
打赏
举报
回复
我的代码只是统计了单词个数,要统计不同的单词数
其实思想不复杂,但是要是文件中单词多一点,那上面的程序效率很低啊
OSNC_17
2004-10-16
打赏
举报
回复
willko的最好!
kobefly
2004-10-15
打赏
举报
回复
如果只要统计单词个数的话很简单的拉
strtok()函数就可以实现了
要统计相同单词的个数
还得比较一下
也不是很难拉
加载更多回复(4)
编写
一个
程序
,
用于
统计
文件
中
单词
的
总数
,
不同
单词
的
数目
。(假设输入
文件
中
只包含字母和空格)
练习题(要求使用伪代码给出算法):
编写
一个
程序
,
用于
统计
文件
中
单词
的
总数
,
不同
单词
的
数目
。(假设输入
文件
中
只包含字母和空格) eg: I love Beijing and I love Shanghai
单词
总数
:7
不同
单词
数目
:5
统计
使用的
单词
个数以及
不同
单词
的个数
使用Java语言
编写
的关于
统计
一段代码
中
所有
单词
总数
以及
不同
的
单词
数目
,并输出
不同
的
单词
符号
10分钟实现微信小
程序
支付功能
老规矩,先看本节效果图我们实现这个支付功能完全是借助小
程序
云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要
一个
简单的云函数,就可以轻松的实现微信小
程序
支付功能。核心代码就下面这些一,创建
一个
云开发小
程序
关于如何创建云开发小
程序
,这里我就不再做具体讲解。不知道怎么创建云开发小
程序
的同学,可以去翻看我之前的文章,或者看下我录制的视频:https://edu.csdn.net/course/play/9604/204528创建云开发小
程序
有几点注意的1,一定不要忘记在app.js里初始化云开发环境。2,创建完云函数后,一定要记得上传二, 创建支付的云函数1,创建云函数pay三,引入三方依赖tenpay我们这里引入三方依赖的目的,是创建我们支付时需要的一些参数。我们安装依赖是使用里npm 而npm必须安装node,关于如何安装node,我这里不做讲解,百度一下,网上一大堆。1,首先右键pay,然后选择在终端
中
打开2,我们使用npm来安装这个依赖。在命令行里执行 npm i tenpay安装完成后,我们的pay云函数会多出
一个
package.json
文件
到这里我们的tenpay依赖就安装好了。四,
编写
云函数pay完整代码如下//云开发实现支付 const cloud = require('wx-server-sdk')cloud.init() //1,引入支付的三方依赖 const tenpay = require('tenpay'); //2,配置支付信息 const config = ;exports.main = async(event, context) => 一定要注意把appid,mchid,partnerKey换成你自己的。到这里我们获取小
程序
支付所需参数的云函数代码就
编写
完成了。不要忘记上传这个云函数。出现下图就代表上传成功五,写
一个
简单的页面,用来提交订单,调用pay云函数。这个页面很简单,1,自己随便
编写
一个
订单号(这个订单号要大于6位)2,自己随便填写
一个
订单价(单位是分)3,点击按钮,调用pay云函数。获取支付所需参数。下图是官方支付api所需要的一些必须参数。下图是我们调用pay云函数获取的参数,和上图所需要的是不是一样。六,调用wx.requestPayment实现支付下图是官方的示例代码这里不在做具体讲解了,完整的可以看视频。实现效果1,调起支付键盘2,支付完成3,log日志,可以看出
不同
支付状态的回调上图是支付成功的回调,我们可以在支付成功回调时,改变订单支付状态。下图是支付失败的回调,下图是支付完成的状态。到这里我们就轻松的实现了微信小
程序
的支付功能了。是不是很简单啊,完整的讲解可以看视频。
模拟词法分析的过程,
编写
一个
程序
,
用于
统计
文件
中
单词
的
总数
上机题: 模拟词法分析的过程,
编写
一个
程序
,
用于
统计
文件
中
单词
的
总数
,
不同
单词
的
数目
。(假设输入
文件
中
只包含字母和空格) eg: I love Dalian and I love DLUT
单词
总数
:7
不同
单词
数目
:5 #include <stdio.h> #include <iostream> #include <string.h> int main() { using namespace std; string sentence;//输入的字符串 cout
c语言
统计
文件
字母数字,C语言:读取
一个
文件
,
统计
文件
中
英文
单词
的总
数目
,以及
不同
单词
出现的次数...
c语言读取
一个
文件
,
统计
文件
中
英文
单词
的总
数目
,以及
不同
单词
出现的次数#include#include#includetypedef struct Word{char s[20];int num;} Word; //s存储
一个
单词
,num表示
单词
个数("
单词
表成员")int main(){char ch;int wordStart=0,numberofword=0; //n...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章