當前位置:首頁 » 編程語言 » c語言輸出最長單詞
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸出最長單詞

發布時間: 2023-03-26 03:08:46

c語言函數的最長單詞輸出問題 新手求助大佬

void f(char a[])
{
int pos,tpos,len=0,tlen=0;
int i=0;
do
{
if ((a[i]>='a' && a[i]<='z')||(a[i]>='A' && a[i]<='Z'))
{
if (!tlen) tpos=i;
tlen++;
}
else
{
if (tlen>len)
{
pos=tpos;
len=tlen;
}
tlen=0;
}
}
while (a[i++]);
for (i=0;i<len;i++) printf("%c",a[pos+i]);
}

Ⅱ C語言輸出一行字元串中最長的單詞

代碼如下:

#包括< stdio, h >

# include < string。H >

Voidmain()

字元c[50];

Voidf(charc[50]);//沒有返回值,直接用函數f列印結果。

(c);

F(c);

Voidf(charc[50])

Intlen=0,lenth=0,I,flag=0;

For(I=0;C(我)!='\0';我++)

如果(c[我]!='')

Len++;

If(c[I]=='')

If (len > lenth)

長度=蘭;

國旗=i-lenth;//當有一個新的最長的字元串時,使用flag記錄字元串開始下標

Len=0;

If (len > lenth)

長度=蘭;

國旗=i-lenth;//以同樣的方式

Printf("最長的子串是%d字元,子串是:",lenth);//列印子串的長度

For (I = flag;I < flag + lenth;i++)//將子字元串從flag輸出到flag + lenth-1

Printf("%c",[I]c);

Printf("\n");//換行

(2)c語言輸出最長單詞擴展閱讀:

1.返回意味著從被調用的函數繼續執行到主函數。Return可以伴隨一個返回值,返回值可以是常量、變數或表達式。

2.操作:結束正在運行的函數並返回該函數的值。

3.返回值:

返回值可以是各種數據類型,例如:int、float、ouble、char、a[](數組)、*a(指針)、

結構或類(c++)返回類型指定返回後要添加的金額的類型,如果返回類型被聲明為void,則不需要返回值。PublicstaticvoidMain()//programentry只能被聲明為void和int的返回

{

//沒有返回值

}

公共靜態空隙(mm)

{

返回;//在某些情況下,在一個voidmethod中,需要跳出來,你可以直接使用return,不能在後面添加任何數量

}

公共靜態intcc()

{

321的回歸;因為返回類型聲明為int,所以返回一個整數

}

公共靜態字元串MSMSM()

{

返回「asdfhasjghdg」;因為返回類型被聲明為string,所以返回一個string

}

Ⅲ 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;

}