C语言 从键盘上输入一串单词,输出其中最长的单词

如题所述

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
void main(void){
char w[300];
int i,j,wl,lm,l;
printf("Enter a string composed of words...\n");
l=strlen(gets(w));
for(wl=lm=j=i=0;i<=l;i++){
if(w[i]!=' ' && w[i]!='\n' && w[i]!='\0') wl++;
else if(w[i]==' ' || w[i]=='\n' || w[i]=='\0'){
if(lm<wl){
lm=wl;
j=i-lm;
}
wl=0;
}
}
for(;w[j]!=' ' && w[j]!='\n' && w[j]!='\0';printf("%c",w[j++]));
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-12
//输出最长的字符串:
#include<stdio.h>
#include<string.h>

#define M  5

void fun(char (*s)[50])
{
int i,j;
char t[50];
for(i=0;i<M-1;i++)
for(j=i+1;j<M;j++)
if(strlen(s[i])>strlen(s[j]))
{
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}


void main()
{
char s[M][50];
int i;
for(i=0;i<M;i++)
gets(s[i]);

printf("***************\n");
fun(s);
puts(s[M-1]);
}

第2个回答  2014-05-12
void delete_(char *p,char b)
{
int i,t;
for(i=0;i<N;i++)
{
t=i;
if(*(p+i)==b)
{
while(t<N)
{
*(p+t)=*(p+t+1);
t++;
}
i=i-1;
}
}
}
相似回答