當前位置:首頁 » 編程語言 » 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;
}