C语言-获取字符串中最长的单词.doc
- 文档编号:1398741
- 上传时间:2022-10-22
- 格式:DOC
- 页数:3
- 大小:56.50KB
C语言-获取字符串中最长的单词.doc
《C语言-获取字符串中最长的单词.doc》由会员分享,可在线阅读,更多相关《C语言-获取字符串中最长的单词.doc(3页珍藏版)》请在冰豆网上搜索。
获取字符串中最长的单词
题目:
写一函数,输入一行字符,将字符串中最长的单词输出。
说明:
i、k用来遍历,flag作为是否是字母的标志,max表示最长单词的字母的个数,str[100]用来存放输入的字符串,ch[10]用来暂时存放各个单词,最多可存放10个字母的单词,str1[10]用来存放最长的单词。
#include
#include
charword(charstr[])
{inti,k,flag=0,max=0;
charstr1[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;}
elseif(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];
}
}
elseif(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()
{chara[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上的运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 获取 字符串 最长 单词