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


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

    具体描写叙述:

    • 接口说明

    原型:

    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;
    	}
    }




  • 相关阅读:
    测试工具PerfDog的使用
    1.人工智能解读与Python简介
    如何提高百度网盘下载速度小技巧(亲测有效!)
    学习方法
    字符串换行工具类/每隔几位插入指定字符串
    java对pdf文件加文字水印 itextpdf
    centos 7.6 安装jdk8
    1 elk软件的安装
    Springboot 2.2.1 与activeMq 集成2 topic 发布者,订阅者
    Springboot 2.2.1 与activeMq 集成2 queue 消息
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8387519.html
Copyright © 2020-2023  润新知