Assignment 6 Question 1 (probably a difficult question)

// 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 program to test to print printDups*/
int main()
{
    char str1[100];
    char str2[100];
scanf("%s", &*str1);
scanf("%s", &*str2);
    int i=0,count=0;
    if (areAnagram(str1, str2))
        {
for(i=0;;i++)
{
if(str1[i]==str2[i])
{
count++;
}
if(str1[i]=='\0')
{
break;
}
}
count--;
printf("%d", count);
}
    else
        printf("-1");
 
    return 0;

Comments

Popular posts from this blog

Assignment 8 Question 1

Assignment 7 Question 2

Assignment 6 Question 2