fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4. #include <assert.h>
  5.  
  6. const int kHistSize = 128;
  7.  
  8. void HistogramFromText(const char *s, int histogram[])
  9. {
  10. memset(histogram, 0, sizeof(int[kHistSize]));
  11. while (*s) {
  12. assert(*s>0);
  13. int index = tolower(*s++);
  14. ++histogram[index];
  15. }
  16. }
  17.  
  18. int IsAnagram(const char *sa, const char *sb)
  19. {
  20. if (strlen(sa)!=strlen(sb)) {
  21. return 0;
  22. }
  23. int histA[kHistSize], histB[kHistSize];
  24. HistogramFromText(sa, histA);
  25. HistogramFromText(sb, histB);
  26. return memcmp(histA, histB, sizeof(histA))==0;
  27. }
  28.  
  29. int main()
  30. {
  31. char s1[100];
  32. char s2[100];
  33. while (scanf("%99s %99s", s1, s2) == 2) {
  34. printf("'%s' and '%s' are %sanagrams\n", s1, s2, IsAnagram(s1, s2)?"":"NOT ");
  35. }
  36. return 0 ;
  37. }
  38.  
Success #stdin #stdout 0s 2164KB
stdin
rozna dlugosc
rozne slowa
tosamo tosamo
anagram gramana
tiktak taktik
WielkoscLiter  literwielkosc 
stdout
'rozna' and 'dlugosc' are NOT anagrams
'rozne' and 'slowa' are NOT anagrams
'tosamo' and 'tosamo' are anagrams
'anagram' and 'gramana' are anagrams
'tiktak' and 'taktik' are anagrams
'WielkoscLiter' and 'literwielkosc' are anagrams