c语言输入一行字符将此字符串中最长的单词输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言输入一行字符将此字符串中最长的单词输出相关的知识,希望对你有一定的参考价值。
这函数 我怎么没见过 是c语言吗
#include <iostream>void main()
int word(char c);
int longest(char str[]);
int i;
char str[80];
printf("输入一行字符串\\n\\n");
gets(str);
printf("\\n\\n最长的单词为:\\n\\n");
for(i=longest(str);word(str[i]);i++)
printf("%c",str[i]);
printf("\\n");
int word(char c)
if((c>=\'a\'&&c<=\'z\')||(c>=\'A\'&&c<=\'Z\')) return 1;
else return 0;
int longest(char str[])【这个函数几乎完全看不懂 望逐句详细解释其逻辑】
int i,flag=1,len=0,point,max_len=0,max_point;
for(i=0;i<=strlen(str);i++)//解析每个字符
if(word(str[i])) //是英文字母的话
if(flag==1) //成立的话说明这个英文字母是单词的第一个
point=i; //单词第一个找到后改变标志
flag=0;
else len++; //开始对这个单词长度进行累加
else //非英文字母的话
flag=1; //等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)
if(len>max_len)//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)
max_len=len;//将单词长度保存下来
max_point=point;//将最长单词的第一个英文字母在字符串中的位置保存下来
len=0;
return (max_point);
参考技术A #include <string>
#include <iostream>
using namespace std;
int main()
string s, t;
while (cin >> s)
if (s.size() > t.size()) t = s;
cout << t << endl;
return 0;
以上是关于c语言输入一行字符将此字符串中最长的单词输出的主要内容,如果未能解决你的问题,请参考以下文章
C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出.
c++:写一函数,输入一行字符,将此字符串中最长的单词输出。
一个c语言问题,编写一个函数,从键盘输入一行字符,将此字符串中最长和最短的单词输出