c语言求出字符串最长单词,C语言-获取字符串中最长的单词.doc
#include char word(char str[])
{int i,k,flag=0,max=0;
char str1[10],ch[10];
for(i=0;str[i]!='\0';i++)
if((65<=str[i]&&str[i]<=90)||(97<=str[i]&&str[i]<=122)) \\如果該字符是字母
{if(flag==0) \\如果該字符是字母,且新單詞未開始
{
k=0;
ch[k]=str[i];
flag=1;}
else if(i==strlen(str)-1) \\如果該字符是字母,新單詞已開始,且已到達字符串結尾
{k++;
ch[k]=str[i];
ch[k+1]='\0';
if(k+1>max) \\ k+1表示單詞的長度
{max=k+1;
strcpy(str1,ch);
}
}
else \\如果該字符是字母,新單詞已開始,且未到達字符串結尾
{k++;
ch[k]=str[i];
}
}
else if(flag==1) \\如果上一個單詞已結束
{ch[k+1]='\0';
flag=0;
if(k+1>max)
{max=k+1;
strcpy(str1,ch);
}
}
printf("輸入的字符串中,最長的單詞有%d個字母,該單詞是%s\n",max,str1);
}
main()
{char a[100];
printf("請輸入一行字符:\n");
gets(a);
word(a); \\調用word函數
}
函數大致流程圖如下(“<=”是賦值):
從實參數組a中獲取數據到數組str中。
i<=0
否
Str[i]不等于結
束符’\0’
輸出str1,結束
是
Str[i]是字母
否
Flag==1
是
是
否
i==strlen(str)-1
Flag==0
否
k<=k+1
ch [k]<=str[i]
是
是
k<=k+1
ch [k]<=str[i]
ch[k+1]<=’\0’
flag<=1
ch [k+1]<=’\0’
k<=0
ch[k]<=str[i]
flag<=1
k+1>max
是
i<=i+1
max<=k+1
strcpy(strl, ch)
在C-FREE5.0上的運行結果:
總結
以上是生活随笔為你收集整理的c语言求出字符串最长单词,C语言-获取字符串中最长的单词.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 模式表达式,linux正则
- 下一篇: 单片机c语言慧尾灯编码,(参考)基于单片