zoukankan      html  css  js  c++  java
  • 找出字符串中第一个出现次数最多的字符

    • 找出字符串中第一个出现次数最多的字符

    具体描写叙述:

    • 接口说明

    原型:

    bool FindChar(char* pInputString, char* pChar);

    输入參数:

    char* pInputString:字符串

    输出參数(指针指向的内存区域保证有效):

    char* pChar:出现次数最多的字符

    返回值:

            false 异常失败

            true  输出成功


    #include <iostream>
    #include <string.h>
    using namespace std;
    
    bool FindChar(char* pInputString, char* pChar)
    {
    	//在这里实现功能
    	if(pInputString==NULL)
    		return false;
    	int  count[256]={0};
    	int  max=count[0];
    	int  t;
    	while(*pInputString!='')
    	{
    		count[*pInputString]++;
    		pInputString++;
    	}
    	for (int i = 0; i < 256; ++i)
    	{
    		if(max < count[i])
    		{
    			max = count[i];
    			t=i;
    		}
    			
    	}
    	*pChar=char(t);
    	return true;
    }
    int main()
    {
    	char str[20]="ddddddddaaaaaaaa";
    	char c;
    	cout<<FindChar(str,&c);
    	    
    }
    程序输出 a,明明最先出现的是d,问题出在哪呢,我们遍历字符串最先出现的是ascii码小的字符。所以以上程序下须要改进.

    正确代码:

    bool FindChar(char* pInputString, char* pChar)
    {
    	int thiscnt = 0;
    	int maxcnt = 0;	
    	//在这里实现功能	
    	if( pInputString == NULL ||  *pInputString == '')
    		return false;
    	*pChar=pInputString[0];
    
    	int len=strlen(pInputString);
    	if(len==1)
    		return true;
    	else
    	{
    		for(int i=0;i<len;i++)
    		{
    			thiscnt=0;
    			for(int j=0;j<len;j++)
    			{
    				if(pInputString[i]==pInputString[j])
    					thiscnt++;
    			}
    			if(thiscnt>maxcnt)
    			{
    				maxcnt=thiscnt;
    				*pChar=pInputString[i];
    			}
    						
    		}
    		return true;
    	}
    }




  • 相关阅读:
    数据仓库专题18-数据建模语言IDEF(转载)
    数据仓库专题(14)-数据仓库建设指导原则:一切以就绪数据为主
    数据仓库专题(16)-分布式数据仓库实践指南-目录篇
    解释器模式
    命令模式
    责任链模式
    代理模式
    享元模式
    外观模式
    装饰器模式
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8387519.html
Copyright © 2011-2022 走看看