您的位置:首页 > 其它

【字符串操作】11.查找一个字符串中最长的纯字母的子串(即查找最长的单词)

2013-08-25 23:52 330 查看
计算每个纯字母的子串的长度,然后比较,找到最长的纯字母子串。

//求一个字符串中的最长子串
#include <iostream>
using namespace std;

void fun(char str[]);

int main(void)
{
char str[100];
printf("请输入一个字符串:\n");
while(gets(str)!=NULL&&str[0]!='\0')
{
fun(str);
printf("该子串为:%s\n",str);
printf("请输入一个字符串:\n");
}
return 0;
}

void fun(char str[])
{
int i;
int place=0;
int temppoint=0;
int length=0;
int max_length=0;
int flag=0;
for(i=0;i<=strlen(str);i++)
{
if(str[i]=='\n'||!((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')))//如果不是字母
{
if(max_length<length)
{
place=temppoint;
max_length=length;
}
flag=0; //不是字母的标志
length=0;
}
else //如果是字母
{
if(0==flag) //上一个不是字母
temppoint=i;
length++;
flag=1; //字母的标志
}

}
printf("最长子串的字母个数为:%d。\n",max_length);
printf("最长子串的开始位数为:%d。\n",place+1);
for(i=0;i<max_length;i++)
str[i]=str[i+place];
str[i]='\0';//新生成的字符串的结束

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐