解决方案:
#include <stdio.h>
#include<math.h>
#include<string.h>
char s[10000];
int main()
{
gets(s);
int sum=0;
int point=0,point2=0,len=0;
for(int i=0;s[i]!='\0';++i)
{
if(s[i]!=' ')
{
if(s[i-1]==' '||i==0)//set the start point
{
point=i;
if(s[i+1]=='\0')
{
point2=i;
}
}
else//set the end point
{
if(s[i+1]=='\0'||s[i+1]==' ')
{
point2=i;
}
}
}
int tiktok=0;
if(s[i]==' '||s[i+1]=='\0')
{
for(int j=point;j<=point2;++j)
{
sum++;
if(s[j]=='a')
{
tiktok=1;
}
}
if(tiktok==0)
{
sum=0;
}
else
{
if(sum>len)
{
len=sum;
}
sum=0;
}
}
}
//finally we have the len>0;if not,output the notice
int ar=0;
int ar2=0;
int po=0,po2=0;
if(len>0)
{
for(int k=0;s[k]!='\0';++k)
{
if(s[k]!=' ')
{
ar++;
if(k==0)
{
po=k;
}
else
{
if(s[k-1]==' ')
{
po=k;
}
}
if(s[k+1]==' '||s[k+1]=='\0')
{
po2=k;
}
if(s[k]=='a')
{
ar2=1;
}
}
if(s[k]==' '||s[k+1]=='\0')
{
if(ar==len&&ar2==1)
{
for(int w=po;w<=po2;++w)
{
printf("%c",s[w]);
}
}
else
{
ar=0;
ar2=0;
}
}
}
}
else
{
printf("There is no such a string which have the 'a' character");
}
return 0;
}
是因为写的比较久,我认为可以作为双指针启蒙的一道题。