Anagram

Bu yazıda console’dan girilen iki stringin anagram olup olmadığını bulan örneği yapıyoruz.
Anagram olması için iki stringin de aynı karakterlerden oluşması gerekir ancak stringlerdeki karakterler sadece bir defa bulunmalıdır. Aynı karakterden iki tane bulunursa anagram olma şartını sağlamaz.
caglar-ralgac:anagram değil
cglar-rlgac:anagram

/*
 * BY CAGLAR KANBER
 * DATE: 13.09.2012
 * DESCRIPTION:
 * We find anagram words with this program. How can we find? 
 * We have two strings. We compare if all of words these strings are the same.  
 * Not important sorting. But one word can't be one more time in string.
*/


#include<stdio.h>
#include<conio.h>
#include<string.h>

#define SIZE 100

int
isCompare(char string1[],char string2[]);

int
main(void)
{
	char string1[SIZE],
		 string2[SIZE];


	printf("Enter a string.\n");
	gets(string1);

	printf("Enter one more string.\n");
	gets(string2);
	
	if(isCompare(string1,string2))
		printf("These strings are anagrams.\n");
	else
		printf("These strings are not anagrams.\n");

	getch();
	return (0);
}

int
isCompare(char string1[],char string2[])
{
	int length1,
		length2,
		counter,
		i,j;

	length1 = strlen(string1);
	length2 = strlen(string2);

	if(length1 != length2)
		return (0);
	
	for(i=0; i<length1; ++i)
	{	
		counter = 0;						
		for(j=0; j<length2; ++j)
		{
			if(string1[i] == string2[j])
				counter +=1;			
		}
		if(counter != 1)	
			return (0);			
	}
		
	return (1);
}
Bu yazı C, Genel kategorisine gönderilmiş ve , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir