//幫你改造一下:

創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)扶綏,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
#include stdio.h
#include string.h
void main()
{
char c[50];
void f(char c[50]);//不設(shè)返回值了,直接用函數(shù)f打印結(jié)果。
gets(c);
f(c);
}
void f(char c[50])
{
int len=0,lenth=0,i,flag=0;
for(i=0;c[i]!='\0';i++)
{
if(c[i]!=' ')
len++;
if(c[i]==' ')
{
if(lenlenth)
{
lenth=len;
flag = i - lenth;//當(dāng)新的最長串出現(xiàn)時(shí),用flag記錄該串起始下標(biāo)
}
len=0;
}
}
if(lenlenth)
{
lenth=len;
flag = i - lenth;//同理
}
printf("最長的子串長度為%d個(gè)字符,該子串為:",lenth);//打印子串長度
for(i = flag;i flag + lenth;i++)//打印子串,下標(biāo)從flag到flag + lenth - 1
printf("%c",c[i]);
printf("\n");//換行
}
#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[])【這個(gè)函數(shù)幾乎完全看不懂 望逐句詳細(xì)解釋其邏輯】
{
int i,flag=1,len=0,point,max_len=0,max_point;
for(i=0;i=strlen(str);i++)//解析每個(gè)字符
{
if(word(str[i])) //是英文字母的話
{
if(flag==1) //成立的話說明這個(gè)英文字母是單詞的第一個(gè)
{
point=i; //單詞第一個(gè)找到后改變標(biāo)志
flag=0;
}
else len++; //開始對(duì)這個(gè)單詞長度進(jìn)行累加
}
else //非英文字母的話
{
flag=1; //等待第一個(gè)英文字母的出現(xiàn),所以flag=1(要是下一個(gè)是英文字母的話就能執(zhí)行上面的if)
if(lenmax_len)//之前累加的單詞長度是否比上一個(gè)單詞更長(第一次的話max_len初始化為0,len必大于max_len)
{
max_len=len;//將單詞長度保存下來
max_point=point;//將最長單詞的第一個(gè)英文字母在字符串中的位置保存下來
}
len=0;
}
}
return (max_point);
}
#includestdio.h
#includestring.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)//當(dāng)前長度等于0時(shí),說明一個(gè)單詞剛剛查找完,此時(shí)的位置為
currStart=i;//新單詞的開始位置
currLen++;
}
if(currLenmaxLen)//當(dāng)前單詞的長度大于最大值,進(jìn)行賦值
{
maxLen = currLen;
MaxStart = currStart;
}
if(str[i]==' ')//遇到空格,即一個(gè)單詞已經(jīng)結(jié)束。
{
currLen = 0;
}
}
for(j=MaxStart;jMaxStart+maxLen;j++)
printf("%c",str[j]);
}
運(yùn)行效果:
擴(kuò)展資料:
Return用法
1.含義:return表示從被調(diào)函數(shù)返回到主調(diào)函數(shù)繼續(xù)執(zhí)行,返回時(shí)可附帶一個(gè)返回值,返回值可以是一個(gè)常量,變量,或是表達(dá)式。
2.作用:結(jié)束正在運(yùn)行的函數(shù),并返回函數(shù)值。
3.返回值:
計(jì)算結(jié)果表示函數(shù)執(zhí)行的順利與否(-1、0)返回值可以為各種數(shù)據(jù)類型,如:int,float,ouble,char,a[](數(shù)組),*a(指針),
結(jié)構(gòu)或類(c++)返回類型規(guī)定了return后面所加的量的類型,如果返回類型聲明為void,則不需要返回值。public static void Main()//程序入口只可以聲明為void和int的返回
{
//不需要返回值就OK
}
public static void mm()
{
return;//有些時(shí)候,在void的方法中,你需要跳出它,可以直接用return而不能加任何量在后面
}
public static int cc()
{
return 321;//因?yàn)榉祷仡愋吐暶鳛閕nt,所以返回一個(gè)整數(shù)
}
public static string msmsm()
{
return“asdfhasjghdg”;//因?yàn)榉祷仡愋吐暶鳛閟tring,所以返回一個(gè)字符串
}
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 (tlenlen)
{
pos=tpos;
len=tlen;
}
tlen=0;
}
}
while (a[i++]);
for (i=0;ilen;i++) printf("%c",a[pos+i]);
}
#include stdio.h
#include string.h
int main(void)
{
char a[100];
char b[100];
int i,k,m;
int flag;
int t;
int count;
while(1)
{
flag = 0;
gets(a);
count = 0;
t = 0;
k = 0;
for(i = 0;i =strlen(a);i++)
{
if(a[i] != ' ' a[i] !='\0')
{
flag = 1;
count ++;
}
else
if(flag == 1)
{
if(t count)
{
t = count;
for(m = i-t; m i;m++)
{
b[k++] = a[m];
}
b[k] = '\0';
}
flag = 0;
count = 0;
k = 0;
}
}
puts(b);
}
}
當(dāng)前標(biāo)題:c語言函數(shù)最長單詞 c++最長最短單詞
文章URL:http://chinadenli.net/article44/hijohe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、移動(dòng)網(wǎng)站建設(shè)、微信公眾號(hào)、軟件開發(fā)、用戶體驗(yàn)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)