一个字符串求最长的单词C++算法

这个算法来自谭浩强的C语言程序设计第二版,在VS2010通过:

#include
#include
using namespace std;
int ab(char);
int longer(char[]);
int main()
{
int i;
char num[]="I love c++";
cout<<"the longst is:"<for(i=longer(num);ab(num[i]);i++)
cout<system("pause");
return 0;
}
int ab(char m)//判断是否为字符
{
if(m>='a'&&m<='z'||m>='A'&&m<='Z')return 1;
return 0;
}


int longer(char str[])
{
int i,flag=1,j,length=0,len=0,point,place=0;
for(i=0,j=0;i{
if(ab(str[i]))//判断一个单词是否开始
if(flag)
{
point=i;
flag=0;//如果开始了,把flag置0用len计数
}
else
{len++;}
else//当一个单词结束,也就是不为英文字符
{
if(len>=length)//比较
{
length=len;
flag=1;
place=point;
len=0;
}
}
}
return place;//返回一个最长单词的起点
}

希望能对你有所帮助,我还要加油努力才行

你可能感兴趣的:(C++简单算法)