c语言编程在一个一直的字符串中查找最长的单词,

c语言编程在一个一直的字符串中查找最长的单词,输出最长单词的长度,假定字符串中只含有字母和空格,空格用来分隔不同的单词

给出代码: 
#include <stdio.h>

#include <string.h>

int main()

{

 char s[128];

 char *p1, *p2;

 int max=0, len=0;

 printf("Input a string: ");

 gets(s);//此处用get更好,get会将空格也输入

 p1=s;

 for (int i=0; i<=strlen(s); i++)

 {

 if ((s[i]==' ') || (s[i]=='\0')) // 如果当前字符为空格或结束,则比较当前单词长度是否大于最大值,再将长度复位。

    {

    if (len>max)

    {

    max=len;

    p2=p1;

    }

    len=0;

    } 

    else // 如果当前字符非空,如果当前长度为0,则表示新单词。

    {

    if (len==0)

    p1=&s[i];

    len++;

    }

 }

 while (*p2 && *p2!=' ')

 printf("%c", *p2++);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-28
#include <stdio.h>
#include <string.h>

int main()
{
char s[128];
char *p1, *p2;
int max=0, len=0;

printf("Input a string: ");
gets(s);

p1=s;
for (int i=0; i<=strlen(s); i++)
{
if ((s[i]==' ') || (s[i]=='\0')) // 如果当前字符为空格或结束,则比较当前单词长度是否大于最大值,再将长度复位。
{
if (len>max)
{
max=len;
p2=p1;
}
len=0;
} else // 如果当前字符非空,如果当前长度为0,则表示新单词。
{
if (len==0)
p1=&s[i];
++len;
}
}
while (*p2 && *p2!=' ')
printf("%c", *p2++);
}
第2个回答  2015-05-12
//申明一个字符数组
char str[50];
//从键盘输入英文单词
gets(str);

int i=0;
int word=0;//标识是否为单词 0表示为单词,1表示不是单词
int count=0;//统计单词个数
//printf("当前输入的英文句子是:");
//puts(str);
//循环遍历
while (str[i] != '\0') {
if(str[i] == ' '){
//设置为单词
word=0;
}else if (word == 0){
count++;
//将单词字母大写
str[i]=str[i]-32;
word=1;
}
i++;
}
第3个回答  2018-04-10

P代表泊车档,停车时使用(关闭发动机时和较长时间怠速停车)!

R代表倒车档!

N代表空档,和手动档的空档一个意思,用于短暂停车时使用!

D表示前进档,在D档位下变速箱会在1~5档根据速度和油门情况自动切换。

D3同样是前进档,可在交通不太通畅的时作为限制档使用,可以避免3档和4档间的跳档情况!

2表示2档,此档时,变速箱就在2档上,用于湿滑路面起步,或者慢速前进时作为限制档使用,可避免1和2档以及2和3档间的跳档!

1就是1档,此档时,变速箱就在一档。

本回答被网友采纳
相似回答