【字符串操作】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';//新生成的字符串的结束
}
//求一个字符串中的最长子串
#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';//新生成的字符串的结束
}
相关文章推荐
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- C语言编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空 格,用空格来分隔单词。
- 算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词(只使用循环,数组)
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- 求一个字符串的最长无重复字母的连续子串
- 对一个已知的字符串查找最长单词,并且输出来
- 编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
- 构造一个单词查找树,支持以下两个操作的数据结构: 添加和搜索,只包含字母a-z或.。
- 怎么查找字符串中最长的一个单词
- 字符串的一些基本操作,复制,长度,子串查找,单词反转,比较,字符串反转,删除指定字符。
- 自己写的一个后缀树算法查找一个字符串的最长重复子串
- 字符串操作问题:查找给定字符串中,连续重复且长度最长的第一个子串