#include<stdio.h>
#include <stdlib.h>
#include <string.h>
char b[100];
int count1,count2;
int main(){
void longest(char a[]);
char a[100];
int m,n;
count1=0; //记录当前单词长度
count2=0; //记录最长的单词长度
printf("输入一行字符:\n");
gets(a);
longest(a);
printf("原字符串为: %s",a);
printf("\n");
printf("最长的单词为为: %s",b);
printf("\n");
printf("单词长度为%d\n",count2);
printf("\n");
system("pause");
return 0;
}
void longest(char a[]){
int i,j,m;
count1=0; //记录当前单词长度
count2=0; //记录最长的单词长度
for(i=0;i<=strlen(a);i++){ //i<=strlen(a),把最后的结束符也进循环更新count2
if((a[i]<='z' && a[i]>='a')||(a[i]<='Z' && a[i]>='A')){
count1++;
continue;
}
if(count1>count2){
count2=count1;
m=i; //标记最长单词的最后一个字母下标
}
count1=0;
}
for(i=m-count2,j=0;i<m;i++,j++){
b[j]=a[i];
}
}
运行结果:

本文介绍了一个使用C语言实现的程序,该程序能够从输入的一行字符中找出并打印最长的单词及其长度。通过逐字符扫描,判断字符是否属于英文字母范围来统计单词长度,并在遇到非字母字符时比较并更新最长单词。
1684





