To find the anagram in a string array

To find the anagram in a string array

Question:

It’s about anagram. Input was the array of strings and a word was given to find whether it has anagram in the given array.

Logic:

  • Get the string array to check and also a word to check.
  • Find the length of string array b[].
  • Then generate all combinations of the string using the find combination logic.
  • Pass the combination, a, l value, and size of b[] to the function.
  • Compare a with b[] using strcmp() function.
  • If found means print “found” with its location.
  • Otherwise, check all other combinations.

Program:


#include<stdio.h>
int find(char a[],char *b[],int m,int l)
{
	int i;
	for(i=0;i<m;i++)
	{
		if(strcmp(a,b[i])==0)     //checks for string in b[]
		{       l=1;
			printf("%s is anagram found at %d\n",b[i],i+1); //prints when found with location
		}
	}
	return l;
}
void main()
{
	char a[20],*b[]={"tea","play","you","eat"};
	int i,j,n,k,temp,m=0,l=0;
	clrscr();
	printf("enter the string:");
	gets(a);
	n=strlen(a);
	for(i=0;b[i]!='\0';i++)      //find the length of b[]
	{
		m++;
	}
	for(j=0;j<n;j++) //generate all combinations of string { for(k=n-1;k>0;k--)
		{
			temp=a[k];
			a[k]=a[k-1];
			a[k-1]=temp;
			l=find(a,b,m,l);     //pass to function for comparison
		}
	}
	if(l==0)                     //no anagram found
	{
		printf("No annagram found");
	}
	getch();
}

You might also like:

To find the substring in a string

 

Vignesh

A Computer Science graduate who likes to make things simpler. When he’s not working, you can find him surfing the web, learning facts, tricks and life hacks. He also enjoys movies in his leisure time.