C Program To Check Whether Two Strings Are Anagrams
C
// C program to check if two strings // are anagrams of each other #include <stdio.h> #define NO_OF_CHARS 256 /* Function to check whether two strings are anagram of each other */ int areAnagram( char * str1, char * str2) { // Create 2 count arrays and initialize // all values as 0 int count1[NO_OF_CHARS] = { 0 }; int count2[NO_OF_CHARS] = { 0 }; int i; // For each character in input strings, // increment count in the corresponding // count array for (i = 0; str1[i] && str2[i]; i++) { count1[str1[i]]++; count2[str2[i]]++; } // If both strings are of different length. // Removing this condition will make the // program fail for strings like "aaca" // and "aca" if (str1[i] || str2[i]) return 0; // Compare count arrays for (i = 0; i < NO_OF_CHARS; i++) if (count1[i] != count2[i]) return 0; return 1; } // Driver code int main() { char str1[] = "w3wiki" ; char str2[] = "forgeeksgeeks" ; // Function Call if (areAnagram(str1, str2)) printf ( "The two strings are anagram of each other" ); else printf ( "The two strings are not anagram of each " "other" ); return 0; } // This code is contributed by Pushpesh Raj. |
The two strings are anagram of each other
Complexity Analysis
- Time Complexity: O(n)
- Auxiliary space: O(n)
Please refer complete article on Check whether two strings are anagram of each other for more details!
String Anagram in C
An anagram of a string is another string that is formed by the rearrangement of the same set of characters. For example, “abcd” and “dabc” are anagrams of each other.
In this article, we will learn how to check whether two strings are anagrams of each other in the C programming language.
The idea is to count the frequency of each character in both strings. If they match, the two strings are anagrams of each other. There might be a case where the length of two strings is not equal so we also need to check if there are any remaining characters in either str1 or str2 before comparing the frequency of each character of both strings.