Write a program to check whether entered two strings are anagram strings or not.
Note: Both strings are anagram if both contain the same elements, same no.of times in any order.
(Can have extra special characters & digits also)
Example: “study”, “dus%@ty123” both are anagrams.
Hereafter removing special characters and digits —-> “ dusty “.
#include<stdio.h> #include<string.h> int Check_for_anagram(char*,char *); enum Sting_status{IS_ANAGRAM,IS_NOT_ANAGRAM}; int main() { char s1[100],s2[100]; printf("Enter String 1 = "); scanf("%[^\n]",s1); printf("Enter String 2 = "); scanf(" %[^\n]",s2); if(IS_ANAGRAM == Check_for_anagram(s1,s2)) printf("Strings are anagram string\n"); else printf("Strings are not anagram string\n"); return 0; } int Check_for_anagram(char *p,char *q) { int i,j,k,c1 = 1,c2 = 1; char str[100]; strcpy(str,p); i = 0; while(str[i]) { c1 = c2 = 0; if(((str[i] >= 'A') && (str[i] <= 'Z')) || ((str[i] >= 'a') && (str[i] <= 'z'))) { for(j = 0;p[j];j++) { if(str[i] == p[j]) c1++; } for(k = 0;q[k];k++) { if(str[i] == q[k]) c2++; } if(c1 != c2) break; } i++; } if(c1 == c2) return IS_ANAGRAM; else return IS_NOT_ANAGRAM; }
Output
Enter String 1 = dust344y Enter String 2 = stu734766dy Strings are anagram string
Enter String 1 = dus67438ty Enter String 2 = sty487395dy Strings are not anagram string