c语言求字符串中最长单词并输出

19950 2013-12-23 07:24:47
...全文
894 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-12-24
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试是程序员必须掌握的技能之一。
yjz_uestc 2013-12-23
  • 打赏
  • 举报
回复

#include <stdio.h>

void longest(char* str)
{
	int i = 0;
	int j = 0;
	int len = 0;
	int d = 0;
	int length = strlen(str);

	for (i = 0; i < length; i++)
	{
		j = 0;
		while ((str[i + j] != ' ') &&  (i + j <= length - 1))
		{
			j++;
		}

		if(len < j)
		{
			len = j;
			d = i;
		}

		if( i + j > length - 1)
		{
			break;
		}
	}
	for (i = d; i < d + len; i++ )
	{
			printf("%c", str[i]);
	}
	printf("\n");
	
}

int main()
{

	char test[80];
	gets(test);
	longest(test);
	system("pause");
}
按你的思路,是这样的吧
pokerlee 2013-12-23
  • 打赏
  • 举报
回复
longest()里循环的k值有什么用~~没看懂~~
yjz_uestc 2013-12-23
  • 打赏
  • 举报
回复
我刚才试了一下你的代码,漏洞百出啊
zj_linux 2013-12-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>


void longest(char *a)
{
    int i=0,pos = 0,len=0,len_max=0;
    
    for(i=0;i<strlen(a);i++)
    {
        if(a[i] != ' ')
            len++;
        else
        {
            if(len > len_max)
            {
                len_max = len;
                pos = i-len;
            }
            len=0;
        }
    }
	
    for(i=pos;i<pos+len_max;i++)
	printf("%c",a[i]);
    printf("\n");
}

void main()
{
    char *haha = "wo cao ni tamade da sao bi";
    longest(haha);
}
19950 2013-12-23
  • 打赏
  • 举报
回复
while循环中加个限制条件 if (i + j > strlen(s) - 1) break; 在做修改if的括号后,还是得不到正确的单词
zj_linux 2013-12-23
  • 打赏
  • 举报
回复
while(a[i]!=' ') j++; 这不是一个死循环吗?
19950 2013-12-23
  • 打赏
  • 举报
回复
为什么总是出现烫字
19950 2013-12-23
  • 打赏
  • 举报
回复
也不是!!!
yjz_uestc 2013-12-23
  • 打赏
  • 举报
回复
额,strlen(a)。
19950 2013-12-23
  • 打赏
  • 举报
回复
不对呀!!!
yjz_uestc 2013-12-23
  • 打赏
  • 举报
回复
while循环中加个限制条件 if (i + j > strlen(s) - 1) break; 试试 我觉得根本用不了这么多变量
19950 2013-12-23
  • 打赏
  • 举报
回复
就是输不出来单词,怎么解呀!!!
yjz_uestc 2013-12-23
  • 打赏
  • 举报
回复
是不是死循环?最后一个单词的时候怎么终止循环?
19950 2013-12-23
  • 打赏
  • 举报
回复
c语言字符串输出最长的单词为什么输不出来(单词之间以空格表示)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧