在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词
为什么使用 if(*p == ' ') 只能输出第一个单词,如果换成if(*p == '-')就可以输出最大的单词,求大神解答!!!
#include<stdio.h>
int main()
{
// 定义字符串变量
char string[180],*p,*p2,*p3;
int i=0,max=0;
// 提示输入字符串,并接收
printf("请输入一段字符串:\n");
scanf("%s", string);
p = string;
// 遍历字符串
while(*p!='\0')
{
// 以空格作为分隔点,并找出最大的单词
if(*p == ' ')
{
if(max<i)
{
max=i;
i=0;
p2=p-max;
p3=p2;
}else
i=0;
}
i++;
p++;
}
// 判断最后一个单词的长度
if(max<i)
{
max=i;
p2=p-max;
p3=p2;
}
// 打出最大的单词
printf("字符串中最长的单词是:");
while (p2<p3+max) {
if (*p2=='-') {
p2++;
continue;
}
printf("%c", *p2);
p2++;
}
printf("\n");
}
|