FZU 2027 单词问题 题目链接:http://acm.fzu.edu.cn/problem.php?pid=2026
字符处理水
题目分析:无论是前后还是中间,都可能有多个非字母元素。
code:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,sum,p,len;
char c[100][100],s[100];
while(scanf("%s",s)!=EOF)
{
len=strlen(s);
i=j=sum=p=0;
int flag;
while(p<len)
{
if(s[p]>64&&s[p]<91||s[p]>96&&s[p]<123)
{
c[sum][j++]=s[p++];
}
else
{
c[sum++][j]=0,j=0;
while(!(s[p]>64&&s[p]<91||s[p]>96&&s[p]<123)&&p<len)p++;
}
}
c[sum][j]=0;
for(i=0;i<=sum;i++)
{
flag=1;
for(j=0;j<i;j++)
{
if(!strcmp(c[i],c[j])){flag=0;break;}
}
if(flag&&strlen(c[i]))printf("%s\n",c[i]);
}
}
return 0;
}
PS:我的想法是把所有单词(不管之前是否出现过)都存下来,输出的时候,把前面的找一遍,确定没有出现过就输出。
本文详细介绍了FZU2027单词问题的解决思路和代码实现,包括字符处理技巧和字符串匹配算法的应用。
608

被折叠的 条评论
为什么被折叠?



