Program in C and C++ to check whether two strings are an anagram or not
C Program
#include<stdio.h> #include<stdlib.h> enum bool {false, true}; // create boolean enum typedef enum bool bool; bool isAnagrams(char *str, char *str1){ int fst[26] = {0}, snd[26] = {0}, i; for(i = 0; str[i] != '\0' ; i++){ str[i] = tolower(str[i]); fst[str[i] - 'a']++; } for(i = 0; str1[i] != '\0' ; i++){ str1[i] = tolower(str1[i]); snd[str1[i] - 'a']++; } for(i = 0; i < 26 ; i++){ if(fst[i] != 0 || snd[i] != 0) if(fst[i] != snd[i]){ return false; } } return true; } int main(){ char *str = malloc(100) , *str1 = malloc(100); printf("Enter 1st string :- "); gets(str); printf("Enter 2nd string :- "); gets(str1); if(isAnagrams(str,str1) == true) printf("Anagrams"); else printf("Not Anagrams"); return 0; }
C++ Program
#include<iostream>
using namespace std;
bool isAnagrams(char *str, char *str1){
int fst[26] = {0}, snd[26] = {0}, i;
for(i = 0; str[i] != '\0' ; i++){
str[i] = tolower(str[i]);
fst[str[i] - 'a']++;
}
for(i = 0; str1[i] != '\0' ; i++){
str1[i] = tolower(str1[i]);
snd[str1[i] - 'a']++;
}
for(i = 0; i < 26 ; i++){
if(fst[i] != 0 || snd[i] != 0)
if(fst[i] != snd[i]){
return false;
}
}
return true;
}
int main(){
char *str = new char[100] , *str1 = new char[100];;
cout<<"Enter 1st string :- ";
cin.getline(str,99);
cout<<"Enter 2nd string :- ";
cin.getline(str1,99);
if(isAnagrams(str,str1) == true)
cout<<"Anagrams";
else
cout<<"Not Anagrams";
return 0;
}
Output :-
Related Programs
0 Comments