呆头。 2021-05-17 14:13 采纳率: 100%
浏览 45
已结题

编程计算一句英文里有多少个单词,输出单词个数和每一个单词,名外再将一个数值型字符串转换成整数输出。

编程计算一句英文里有多少个单词,输出单词个数和每一个单词,名外再将一个数值型字符串转换成整数输出。
  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-05-17 15:24
    关注

    代码如下:

    #include <stdio.h>
    #include <map>
    #include <vector>
    #include <string>
    using namespace std;
    
    //字符串分割成小字符串
    void SplitStr(std::string pStr, char ch,std::vector<std::string>& vReturn)
    {
    	int nStartPos=0;
    	int nEndPos=0;
    	while((nEndPos = pStr.find(ch,nStartPos))> 0)
    	{
    		vReturn.push_back(pStr.substr(nStartPos,nEndPos - nStartPos));
    		nStartPos = nEndPos+1;
    	}
    	nEndPos=pStr.find('\0',0);
    	vReturn.push_back(pStr.substr(nStartPos,nEndPos-nStartPos));
    }
    
    
    int main()
    {
    	char buf[1024] = {0};
    	printf("请输入一句英文:");
    	gets(buf);
    	//
    	vector<string> vout;
    	SplitStr(buf,' ',vout);
    	map<string,int> mapcnt;
    	map<string,int>::iterator it = mapcnt.begin();
    	for (int i = 0; i<vout.size(); i++)
    	{
    		if (vout.at(i).empty())
    			continue;
    		else
    		{
    			it = mapcnt.find(vout.at(i));
    			if (it == mapcnt.end())
    			{
    				mapcnt.insert(pair<string,int>(vout.at(i),1));
    			}else
    			{
    				int cnt = it->second;
    				cnt+=1;
    				mapcnt.erase(it);
    				mapcnt.insert(pair<string,int>(vout.at(i),cnt));
    			}
    		}
    	}
    	//打印输出
    	for ( it = mapcnt.begin(); it != mapcnt.end(); it++)
    	{
    		printf("%s:%d\n",it->first.c_str(),it->second);
    	}
    
    
    	//数值型字符串转数值
    	char tmp[8] = {0};
    	printf("请输入数值型字符串:");
    	scanf("%s",tmp);
    
    	int vv = 0;
    	string ss = tmp;
    	int index = ss.find('.');
    	if (index == -1)
    	{
    		vv = atoi(tmp);
    	}else
    	{
    		ss = ss.substr(0,index);
    		vv = atoi(ss.c_str());
    	}
    
    	printf("%d",vv);
    	getchar();
    	getchar();
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月31日
  • 已采纳回答 12月23日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?