题目描述
完整代码如下
void lowcase(char *s)
{
for(;*s!='\0';s++)
{
if(*s>='A'&&*s<='Z')
{
*s=*s+'a'-'A';
}
}
}
int areAnagrams(const char *word1, const char *word2)
{
int i,j,m=1,n;
char ch;
char w1[255],w2[255];
strcpy(w1,word1);
strcpy(w2,word2);
lowcase(w1);
lowcase(w2);
char *a,*b;
a=w1;
b=w2;
n=strlen(word1);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(*(a+j)>*(a+j+1))
{
ch=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=ch;
}
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(*(b+j)>*(b+j+1))
{
ch=*(b+j);
*(b+j)=*(b+j+1);
*(b+j+1)=ch;
}
}
}
a=w1;
b=w2;
while(*a!='\0')
{
if(*a!=*b)
{
m=0;
break;
}
a++;
b++;
}
return m;
}
int countAnagrams(const char *test, const char *word)
{
int cnt=0,n1,n2,m;
char c,d[255],e[255],*p;
p=e;
strcpy(e,test);
n1=strlen(test);
n2=strlen(word);
while((strlen(p))>=n2)
{
c=*(p+n2);
*(p+n2)='\0';
strcpy(d,p);
m=areAnagrams(d,word);
*(p+n2)=c;
if(m==1)
{
cnt++;
p=p+n2;
}
else
{
p++;
}
}
return cnt;
}