程序有点麻烦
望谅解。。
#include
#include
int main()
{
void count(char str[]);
char str[500];
printf("请输入字符串:\n");
gets(str); // 输入字符串
printf("输入成功,输出:\n");
puts(str); //显示
printf("\n");
count(str); // 筛选最长单词
return 0;
}
void count(char str[])
{
int i,k,flag=0,max=0;
char str1[20],ch[20];
for(i=0;str[i]!='\0';i++) // 每个字符进行检查
if((str[i]>='a'&&str[i]<='z') || (str[i]>='A'&&str[i]<='Z')) // 如果是字母的话
{
if(flag==0) // 是字母,且新单词没有开始
{
k=0;
ch[k]=str[i];
flag=1;
}
else if(i==strlen(str)-1) // 是字母,新单词已开始,且已到达字符串结尾
{
k++;
ch[k]=str[i];
ch[k+1]='\0';
if(k+1>max) // k+1表示单词的长度
{
max=k+1;
strcpy(str1,ch);
}
}
else // 是字母,新单词已开始,且未到达字符串结尾
{
k++;
ch[k]=str[i];
}
}
else if(flag=1) // 如果上一个单词已结束
{
ch[k+1]='\0';
flag=0;
if(k+1>max) // k+1表示单词的长度
{
max=k+1;
strcpy(str1,ch);
}
}
printf("输入的字符串中,最长的单词有 %d 个字母,该单词是:%s\n",max,str1); // 输出
}