Provera anagrama
Napisati funkciju koja proverava da li je jedna niska anagram druge.
Ulaz
Sa standardnog ulaza se učitavaju dve rečenice, svaka u zasebnom redu, dužine
Izlaz
Na standardni izlaz ispisati DA ukoliko je prva rečenica anagram druge rečenice, inače ispisati NE.
Primer
Ulaz
stize nam polarna hladnoca
alarmantno sad nalozih pec
Izlaz
DA
Primer
Ulaz
beogradjani peske do posla po minusu
ispod nule bus krepa i podjose nogama
Izlaz
DA
Primer
Ulaz
ekonomski interes
nekome ste beskorisni
Izlaz
NE
Rešenje
main.c
#include <stdio.h>
#include <ctype.h>
#define MAX_LENGTH 1000
int are_anagrams(const char str1[], const char str2[])
{
// assuming ASCII character set
// initialize all counts to 0
int count[256] = {0};
for (int i = 0; str1[i]; i++) {
if (isalpha(str1[i])) {
count[str1[i]]++;
}
}
for (int i = 0; str2[i]; i++) {
if (isalpha(str2[i])) {
count[str2[i]]--;
}
}
for (int i = 0; i < 256; i++) {
if (count[i] != 0) {
return 0; // not anagrams
}
}
return 1; // are anagrams
}
int main(void)
{
char str1[MAX_LENGTH + 1], str2[MAX_LENGTH + 1];
// for reading lines better use fgets (see later lectures)
scanf("%1000[^\n]", str1);
getchar(); // consume the newline character
scanf("%1000[^\n]", str2);
getchar(); // consume the newline character
if (are_anagrams(str1, str2))
{
printf("DA\n");
}
else
{
printf("NE\n");
}
return 0;
}