C语言-获取字符串中最长的单词Word格式.doc
《C语言-获取字符串中最长的单词Word格式.doc》由会员分享,可在线阅读,更多相关《C语言-获取字符串中最长的单词Word格式.doc(3页珍藏版)》请在冰豆网上搜索。
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<
=122))\\如果该字符是字母
{if(flag==0)\\如果该字符是字母,且新单词未开始
{
k=0;
ch[k]=str[i];
flag=1;
}
elseif(i==strlen(str)-1)\\如果该字符是字母,新单词已开始,且已到达字符串结尾
{k++;
ch[k+1]='
if(k+1>
max)\\k+1表示单词的长度
{max=k+1;
strcpy(str1,ch);
}
}
else\\如果该字符是字母,新单词已开始,且未到达字符串结尾
{k++;
elseif(flag==1)\\如果上一个单词已结束
{ch[k+1]='
flag=0;
if(k+1>
max)
{max=k+1;
strcpy(str1,ch);
}
printf("
输入的字符串中,最长的单词有%d个字母,该单词是%s\n"
max,str1);
main()
{chara[100];
请输入一行字符:
\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]
ch[k+1]<
=’\0’
flag<
=1
ch[k+1]<
ch[k]<
k+1>
max
=i+1
max<
strcpy(strl,ch)
在C-FREE5.0上的运行结果: