黑马程序员技术交流社区
标题: 大家帮忙看一下哪里出错了! [打印本页]
作者: 萧雨流风 时间: 2014-10-9 08:31
标题: 大家帮忙看一下哪里出错了!
在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词
为什么使用 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");
}
作者: 萧雨流风 时间: 2014-10-9 10:33
没人会吗
作者: Lizzie 时间: 2014-10-9 14:27
你写成 \32试试?
作者: 萧雨流风 时间: 2014-10-9 19:46
还是不可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |