当前位置:首页 » 编程语言 » c语言找到英文句子中最长单词
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言找到英文句子中最长单词

发布时间: 2022-04-21 17:07:31

c语言题目:要求找出一段话中最长的单词

查下string.h函数,其中strlen可以计算单词的长度,把单词的长度放到一个数组中,比较大小即可

❷ c语言 写一个函数,找出一个英文句子中最长的单词

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#defineN100

char*maxlenword(charstatement[],charmaxword[]){
inti=0,j;
charword[N];
maxword[0]='';
for(i=0;statement[i];i++){
if(!isalpha(statement[i++]))continue;
--i;
j=0;
while(statement[i]&&isalpha(statement[i]))
word[j++]=statement[i++];
word[j]='';
if(strlen(maxword)<strlen(word))
strcpy(maxword,word);
}
returnmaxword;
}

intmain(){
chara[N]={''};
charb[N]={''};
printf("请输入字符串: ");
gets(a);
maxlenword(a,b);
printf("最长单词长为:%d ",strlen(b));
printf("最长单词为:"%s" ",b);
return0;
}

❸ c语言求一段字符串中最长单词

你的代码问题不太大,但要注意细节,特别要注意循环后中间数值的变化,参考代码如下:
#include <stdio.h>
#include <string.h>
void max(char a[]);
int main()
{
char a[80];
gets(a);
max(a);
return 0;
}
void max(char a[])
{
int i;
int max=0;
int l=0,j;
int n=0;
for(i=0;i<=strlen(a)-1;i++)
{
if(a[i]!=' ')
{
for(j=i;(a[j]!=' ')&&(a[j]!='\0');j++)
l++;
if(l>max){max=l;n=i;}
l=0;//注意归零
i=j;
}
}
for(i=n;i<=max+n-1;i++)//多输出了一个空格或\0
printf("%c",a[i]);
}

❹ C语言 输入一个英文句子 找出其中最长的英文单词 输出长度和单词

逐个单词,使用strlen取长度、、、、并使用临时变量记住最长的长度和单词

❺ C语言用函数求字符串中最长单词.

#include<stdio.h>

#include<string.h>

int main()

{

char str[100];

gets(str);

void findLongest(char str[]);

findLongest(str);

return 0;

}

void findLongest(char str[])

{

int currLen=0,maxLen=0,currStart=0,MaxStart=0;

int i=0,j=0;

for(i=0;str[i];i++)

{

if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))

{

if(currLen==0)//当前长度等于0时,说明一个单词刚刚查找完,此时的位置为

currStart=i;//新单词的开始位置

currLen++;

}

if(currLen>maxLen)//当前单词的长度大于最大值,进行赋值

{

maxLen = currLen;

MaxStart = currStart;

}

if(str[i]==' ')//遇到空格,即一个单词已经结束。

{

currLen = 0;

}

}

for(j=MaxStart;j<MaxStart+maxLen;j++)

printf("%c",str[j]);

}

运行效果:

(5)c语言找到英文句子中最长单词扩展阅读:

Return用法

1.含义:return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,返回值可以是一个常量,变量,或是表达式。

2.作用:结束正在运行的函数,并返回函数值。

3.返回值:

计算结果表示函数执行的顺利与否(-1、0)返回值可以为各种数据类型,如:int,float,ouble,char,a[](数组),*a(指针),

结构或类(c++)返回类型规定了return后面所加的量的类型,如果返回类型声明为void,则不需要返回值。public static void Main()//程序入口只可以声明为void和int的返回

{

//不需要返回值就OK

}

public static void mm()

{

return;//有些时候,在void的方法中,你需要跳出它,可以直接用return而不能加任何量在后面

}

public static int cc()

{

return 321;//因为返回类型声明为int,所以返回一个整数

}

public static string msmsm()

{

return“asdfhasjghdg”;//因为返回类型声明为string,所以返回一个字符串

}

❻ C语言 在字符串中找到最长单词

实现本功能,需要按以下步骤进行程序设计:
1、确定单词分隔符,一般情况为空格和标点符号,根据题目情况来确定标点符号是否算在单词中。 假定单词不包括标点符号,即全由字母组成
2、根据上面的特点,读取一个单词
3、计算单词长度
4、与当前最大单词长度max(初值为0)比较,如果大于max,则记录下当前单词,并将其长度赋值给max
5、重复2-4,直到读单词结束(到字符串尾)。
6、输出最长单词长度和单词

7、例程:

#include<stdio.h>
#include<string.h>
#defineM1000
intmain()
{
intlow;//单词的起始下标
inthigh;//单词的结束位置
inti;//循环变量
intcount;//统计最长单词的长度
inttemp;//中间变量
intlow_temp;
inthigh_temp;
charp[M];//存储有多个单词的字符指针
gets(p);
count=0;
low=0;
high=0;
for(i=0;i<strlen(p);i++)
{
temp=0;
low_temp=i;
while(p[i]!=''&&p[i]!='')//p[i]!=空格
{
temp++;
i++;
}
high_temp=i-1;
if(temp>count)
{
count=temp;
low=low_temp;
high=high_temp;
}
}
for(i=low;i<=high;i++)
{
putchar(p[i]);
}
return0;
}

❼ C语言输出字符串(英文句子)的最长的单词

你的语法没错,但逻辑想复杂了。你只要想一个单词是从一个非空格开始,到下一个空格结束。那么只要一个标识变量来回切换,就可以拆分单词,同时用变量累加能得到单词长度,通过比较保留最长的那个长度值和起始下标就可以实现你要的功能。

这个代码,用动态数组来做更好,不仅一次遍历就能得到最长单词,还能把所有单词都拆出来。

考虑你的要求,没用动态数组,参照你的写法写了代码给你参考,已详细备注说明。

#include<stdio.h>

#include<string.h>

void pick(char str[])

{

int i,len,n=0,ns=0,flag=0,bx=0,bxs;//bx:一个单词的起始下标

len=strlen(str);

for(i=0;i<len;i++)

{

if(!flag && str[i]!=' ')flag=1,bx=i;//flag为0时遇到第一个字母置1,并记录单词起始下标

if(flag && str[i]!=' ')n++;//flag为1时每遇到一个非空格,单词长度计数+1

//flag为1时遇到第一个空格置0并确认一个单词结束,如比上一个单词长(和ns比),保存当前单词长度到ns,并保存单词始下标

if(flag && str[i]==' ')

{

flag=0;

if(n>ns)ns=n,bxs=bx;

n=0;

}

}

for(i=bxs;i<bxs+ns;i++)

printf("%c",str[i]);

}

int main()

{

char a[50];

gets(a);

pick(a);

return 0;

}

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

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

#include<string.h>

intmain()

{

chars[128];

char*p1,*p2;

intmax=0,len=0;

printf("Inputastring:");

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

p1=s;

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

{

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

{

if(len>max)

{

max=len;

p2=p1;

}

len=0;

}

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

{

if(len==0)

p1=&s[i];

len++;

}

}

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

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

}

❾ c语言 输入语句 找出语句中 最长的单词

#include<stdio.h>
#include<string.h>
//用于判断字符是否是英文字节
intword(charc)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return1;
elsereturn0;
}
intlongest(charstr[])
{
inti,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;
}
elselen++;//开始对这个单词长度进行累加
}
else//非英文字母
{
//等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)
flag=1;
//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)
if(len>max_len)
{
//将单词长度保存下来
max_len=len;
//将最长单词的第一个英文字母在字符串中的位置保存下来
max_point=point;
}
len=0;
}
}
return(max_point);
}
intmain()
{
intword(charc);
intlongest(charstr[]);
inti;
charstr[80];
printf("输入一行字符串 ");
gets(str);
printf(" 最长的单词为: ");
for(i=longest(str);word(str[i]);i++)
printf("%c",str[i]);
printf(" ");
return0;
}