Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { Visit: http://g-lts.info/ for more code! }
- #include <stdio.h>
- #include <string.h>
- #define Nmax 7 /* +1 τον χαρακτήρα τέλους του string! που θέλει η C */
- int anagramatismos(char pin1[], char pin2[], int size);
- /* Συνάρτηση η οποία παίρνει :
- - 2 πίνακες χαρακτήρων
- - το μέγεθος των δύο αυτών πινάκων ( πρέπει να έχουν το ίδιο μέγεθος
- Επιστρέφει :
- - Ένα ακέραιο που αν είναι :
- - 1 : Σημαίνει πως το string των πινάκων είναι αναγραμματισμός
- - 0 : Σημαίνει πως το string των πινάκων ΔΕΝ είναι αναγραμματισμός */
- int wordcounter(char a, char pinakas[], int size);
- /* Συνάρτηση η οποία κάθε φορά παίρνει :
- - Έναν χαρακτήρα
- - Έναν πίνακα χαρακτήρων
- - Το μέγεθος του πίνακα
- Και ψάχνει πόσες φορές ο χαρακτήρας, υπάρχει μέσα στον πίνακα.
- Επιστρέφει :
- - Έναν ακέραιο που δείχνει πόσες φορές ο χαρακτήρας βρέθηκε μέσα στο πίνακα */
- int main (void)
- {
- char p1[Nmax] = "tsotso";
- char p2[Nmax] = "sstoto";
- int i=0;
- for (i; i<Nmax; i++)
- printf("p1 = %c \t\t p2 = %c \n",p1[i],p2[i] );
- if ( anagramatismos(p1,p2,Nmax) )
- printf("Το %s είναι αναγραμματισμός του %s.\n",p1,p2);
- else
- printf("Το %s ΔΕΝ είναι αναγραμματισμός του %s.\n",p1,p2);
- return 0;
- }
- /******************************************************************************/
- /* Η συνάρτηση που βρίσκει αν είναι αναγραμματισμός ή όχι */
- int anagramatismos(char pin1[], char pin2[], int size)
- {
- int i = 0;
- for (i; i<size && ( wordcounter(pin1[i],pin1,size) == wordcounter(pin1[i],pin2,size) ); i++ );
- /* Από την αρχή μέχρι το τέλος του πίνακα
- !!! ΚΑΙ !!!
- όσο το εκάστοτε γράμμα που βρίσκεται στην θέση i (κάθε φορά) του πίνακα καθώς τον
- σκανάρουμαι υπάρχει τόσες φορές στον πίνακα1 όσες και στον πίνακα2 προχωράμε στην
- επόμενη θέση - γράμμα - του πίνακα */
- return i==size ; /* Αν σκανάραμε όλο τον πίνακα που πάει να πει πως δεν "έσπασε"
- πουθενά η for loop μας */
- }
- /******************************************************************************/
- /* Η συνάρτηση που μετράει τα γράμματα */
- int wordcounter(char a, char pinakas[], int size)
- {
- int i,c;
- i = c = 0 ;
- for (i; i<size; i++) /* Σκάναρε όλο τον πίνακα */
- if ( pinakas[i] == a ) /* Αν κάποια θέση έχει τον χαρακτήρα που μετράμε */
- c++; /* Αύξησε τον μετρητή κατά 1 */
- /* Αν θέλω να δω πόσες φορές βρέθηκε μέσα στον πίνακα κάθε φορά. */
- /* printf("Ο χαρακτήρας %c βρέθηκε %d φορές.\n", a, c);*/
- return c;
- }
- { Visit: http://g-lts.info/ for more code! }
Advertisement
Add Comment
Please, Sign In to add comment