[求助]求一函数代码
写一函数,输入一行字符,将此字符串中最长的单词输出.请高手们用c语言写,代码简单点,我是初学的,谢谢!
----------------解决方案--------------------------------------------------------
以下代码VC6.0测试通过
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[100],t[100];
char* p,*c,*tmp;
int l=0;
gets(s);
p=tmp=s;
while((c=strchr(tmp,' ')))
{
if(l<c-tmp)
{
l=c-tmp;
p=tmp;
}
tmp=c+1;
}
memcpy(t,p,l);
t[l]='\0';
puts(t);
return 0;
}
----------------解决方案--------------------------------------------------------
ls的只适合两个单词的情况,如果有多个单词呢?
----------------解决方案--------------------------------------------------------
谁说只适合两个单词的?你尽管输,不要超出99个字符就行
----------------解决方案--------------------------------------------------------
不好意思是我搞错了,但是程序还是有点小问题,就是在输入时,要用个空格结束,不然就会出错.
----------------解决方案--------------------------------------------------------
忘记考虑最长的在末尾的情况
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[100],t[100];
char* p,*c,*tmp;
int l=0;
gets(s);
l=strlen(s);
s[l]=' ';
s[l+1]='\0';
p=tmp=s;
l=0;
while((c=strchr(tmp,' ')))
{
if(l<c-tmp)
{
l=c-tmp;
p=tmp;
}
tmp=c+1;
}
memcpy(t,p,l);
t[l]='\0';
puts(t);
return 0;
}
----------------解决方案--------------------------------------------------------
呵呵,OK了,谢谢永夜的极光!!
----------------解决方案--------------------------------------------------------