该程序未考虑出错机制,同时效率比较低。只是算法比较简单一些,比较容易理解。
#include "stdafx.h"
#include
#include
#include
#define NUM 10
using namespace std;
/**
该函数找出字符串str中从begin开始到end结束的字符串
并将该字符串返回给result
输入值:
str -- 字符串
begin -- 开始的位置
end -- 结束的位置
返回值: for(int i=0;i *temp='\0'; /** 返回值: /** //cout<<"strlen=="< if(num>=max && strlen(str_sub)>=strlen(result)) char *str1[NUM]={"cheqing0ting0","cheting0ing0ing0","ing0tteeing0ddss","swering0","sdfvxing0","kjlning0","kjlning0","kjlning0","kjlning0","kjlning0"}; cout<<"字符串:“"< delete [] result;
result --返回符合要求的字符串
*/
void getSubstr(const char *str, int begin, int end, char *result)
{
char *temp=result;
//cout<<"strlen=="<
if(i>=begin && i
}
}
输入值:
*str[] -- 字符数组
n -- 字符数组中元素个数
*substr -- 要匹配的字符串
return值 -- *substr 在字符数组中匹配的次数
*/
int match(char *str[], int n, const char *substr)
{
int num=0;
int lenSubstr=strlen(substr);
char *result = new char[255];
for(int i=0;i
int len_i_str = strlen(str[i]);
for(int j=0;j
getSubstr(str[i], j, j+lenSubstr, result);
if(strcmp(result,substr)==0)num++;
}
}
delete [] result;
return num;
}
输入值:
*str[] -- 字符数组
n -- 字符数组中元素个数
返回值:
result -- 出现次数最多的字符串
return值 -- 出现次数最多的字符串出现的次数
*/
int getResult(char *str[], int n, char *result)
{
char *str_sub=new char[255];
for(int m=0;m<255;m++)
*(str_sub+m)='\0';
int num=0,max=0;
for(int i=0;i
for(int j=0;j
for(int k=1;k
//if((j+k)
if(*str_sub=='\0')continue;
num = match(str, n, str_sub);
{
max=num;
strcpy(result,str_sub);
//cout<<"num="<
}
}
}
delete [] str_sub;
return max;
}
int main(int argc, char* argv[])
{
char *str="chenqingtign";
char *result=new char[255];
int num=0;
for(int i=0;i<255;i++)
*(result+i)='\0';
num=getResult(str1,NUM,result);
return 0;
}