杭电 单词数 2072

 

        使用到c中的strtok函数,输入一行后进行统计输出,即遇到换行符后输出结果。并且遇到‘#’结束程序。

 

#include <iostream>
#include <cstdio>  // 使用到c中的strtok,关键
#include <string>  //map中用到string,这一句总忘
#include <map>     //通过计算m的大小计算单词数
using namespace std;
char str[10000];
int main()
{  
	char delims[] = " ";  //在空格处将单词取出
	while (cin.getline(str,10000) && strcmp(str, "#")!=0)
	{
		map <string, int> m;
		char *result = NULL;
		result = strtok( str, delims );
		while( result != NULL ) 
		{
                        //判断m中是否有这个单词,如果没有则添加这个单词
			if (m.find(result)==m.end()) 
			    m[result]++;   //本句的++没什么用,却不知道如何改进
			result = strtok( NULL, delims );
		}
		cout<<m.size()<<endl; //计算m的大小
	}
	return 0;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值