#include <stdio.h>
#include <ctype.h>
#define ASCII_RANGE 256
int areAnagrams(const char s1[], const char s2[]) {
int freq[ASCII_RANGE] = {0};
/* Count characters from first string */
for (int i = 0; s1[i] != '\0'; i++) {
unsigned char c = (unsigned char)s1[i];
freq[c]++;
}
/* Subtract characters from second string */
for (int i = 0; s2[i] != '\0'; i++) {
unsigned char c = (unsigned char)s2[i];
freq[c]--;
}
/* If all counts return to zero, they match */
for (int i = 0; i < ASCII_RANGE; i++) {
if (freq[i] != 0) {
return 0;
}
}
return 1;
}
int main(void) {
char s1[32] = "stdoi";
char s2[32] = "iostd";
if (areAnagrams(s1, s2))
printf("Anagram\n");
else
printf("Not anagram\n");
return 0;
}
/*
run:
Anagram
*/