當前位置:編程學習大全網 - 編程軟體 - 用壹個函數來實現將壹行字符串中最長的單詞輸出。此行字符串從主函數傳遞給該函數。

用壹個函數來實現將壹行字符串中最長的單詞輸出。此行字符串從主函數傳遞給該函數。

4.

#include<stdio.h>

#include<string.h>

/*以下6行,函數alphabetic,判斷是否為字母*/

int alphabetic(char c)

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

return(1);

else return(0);

}

/*以下30行,函數longest,計算最長單詞的起始位置。*/

int shortest(char string[])

{

int len=1,i,flag,length=strlen(string),place=0,point;

/*flag表示單詞是否開始,flag=0表示未開始,flag=1表示單詞開始;

len表示單詞以累計的字母個數;length表示先前單詞中最短單詞的長度;

point表示當前單詞的起始位置;place表示最長單詞的起始位置.*/

for(i=0;i<=strlen(string);i++)

{

if(alphabetic(string[i]))/*判斷是否為字母*/

{

if(flag)/*是,開始*/

{

flag=0; point=i;

}

else len++;/*進入計算,+1*/

}

else/*不是,比較已統計*/

{

flag=1;

if(len<=length)

{

length=len;

place=point;

}

len=0;

}

}

return(place);

}

/*以下14行,主函數,調用shortest計算最長單詞的起始位置,並輸出*/

void main()

{

char line[1024];

int i,n=0;

printf("please input one line:\n");

gets(line);

printf("The shortest word is :");

for(i=shortest(line);alphabetic(line[i]);i++)

{

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

n++;

}

printf("\nThe length is %d.\n",n);

}

  • 上一篇:河北定州有哪些提高學歷的途徑?
  • 下一篇:機器和儀器的區別
  • copyright 2024編程學習大全網