文档详情

C语言-获取字符串中最长的单词.doc

发布:2017-07-20约1.25千字共3页下载文档
文本预览下载声明
获取字符串中最长的单词 题目:写一函数,输入一行字符,将字符串中最长的单词输出。 说明:i、k用来遍历,flag作为是否是字母的标志,max表示最长单词的字母的个数,str[100]用来存放输入的字符串,ch[10]用来暂时存放各个单词,最多可存放10个字母的单词,str1[10]用来存放最长的单词。 #include stdio.h #include string.h 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+1max) \\ 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+1max) {max=k+1; strcpy(str1,ch); } } printf(输入的字符串中,最长的单词有%d个字母,该单词是%s\n,max,str1); } main() {char a[100]; printf(请输入一行字符:\n); gets(a); word(a); \\调用word函数 } 函数大致流程图如下(“=”是赋值): 在C-FREE5.0上的运行结果: 从实参数组a中获取数据到数组str中。 i=0 Str[i]是字母 Flag==0 k=0 ch[k]=str[i] flag=1 i=i+1 i==strlen(str)-1 Flag==1 k=k+1 ch [k]=str[i] ch[k+1]=’\0’ k=k+1 ch [k]=str[i] flag=1 ch [k+1]=’\0’ k+1max max=k+1 strcpy(strl, ch) 是 是 是 是 否 是 否 否 Str[i]不等于结 束符’\0’ 是 输出str1,结束 否
显示全部
相似文档