输入字符串,查找最长单词(自学练习)
```c
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define N 100
int searchlongest(char[]); //找到字符串的最长单词起始位置的函数
int main(void)
{
int i=0;
char str[N];
gets_s(str,N); //输入字符串
printf("%s\n", str); //输出
i=searchlongest(str); //查找位置
while (isalpha(str[i])) //再输出
{
printf("%c", str[i++]);
}
}
int searchlongest(char a[])
{
int i=0, j = strlen(a);
int flag; //标记是否为字母
int loca=0; //位置标记
int len=0; //统计当前字长
int max=0; //最长字长
if (j == 0)
{
printf("not exit string");
}
else
{
flag = 0;
for (i = 0; i < j; i++)
{
if (flag)
{
if ((a[i]<'z' && a[i]>'a') || (a[i] > 'A' && a[i] < 'Z'))
{
len++;
}
else if (len > max)
{
max = len;
loca = i - len;
len = 0;
}
else
flag = 0;
}
else
{
if ((a[i]<'z' && a[i]>'a') || (a[i] > 'A' && a[i] < 'Z'))
{
flag = 1;
len = 1;
}
}
}
if (len > max) //字符串最后的单词最长时
loca = j - len;
}
return loca;
}