Δημοσιεύτηκε: 12 Αύγ 2011, 20:44
από giannosfor
migf1 έγραψε:
Λύση 1η (με χρήση των στάνταρ συναρτήσεων: strchr & strlen)
Spoiler: show
Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <string.h>
// --------------------------------------------------------------
int isanagram( char *s, char *t )
{
int i;
for (i=0; s[i] != '\0' && strchr(t, s[i]) != NULL; i++)
;
return i == strlen(t) ? 1 : 0;

/*** ΕΝΑΛΛΑΚΤΙΚΟΣ ΚΩΔΙΚΑΣ ΜΕ ΔΕΙΚΤΕΣ
int i=0;
for (; *s && strchr(t, *s++); i++)
;
return i == strlen(t) ? 1 : 0;
***/
}
// --------------------------------------------------------------
int main( void )
{
char s1[] = "abcd", s2[] = "cdab"; // 1 TRUE
char s3[] = "helle", s4[] = "hollo"; // 0 FALSE
char s5[] = "z", s6[] = "zzz"; // 0 FALSE
char s7[] = "zzz", s8[] = "z"; // 0 FALSE
char s9[] = "z", s10[] = "z"; // 1 FALSE

printf("%d\n", isanagram(s1, s2) );
printf("%d\n", isanagram(s3, s4) );
printf("%d\n", isanagram(s5, s6) );
printf("%d\n", isanagram(s7, s8) );
printf("%d\n", isanagram(s9, s10) );

return 0;
}


Τι γίνεται σε περίπτωση που δώσουμε
Κώδικας: Επιλογή όλων
char s1[] = "abcddd", s2[] = "cccdab";
θα μας δώσει σωστό αλλά μάλλον δεν είναι.

έγραψε:Σνφμύωα με μαι έυρενα σοτ Πμανιπσήτετο τυο Κμτρπιαιζ, δνε πεαίζι ρλόο με τι σριεά ενίαι τοθοπεμέτενα τα γταμαμρά μσέα σε μαί λξηέ, αεκρί το πώτρο κια το ταελείτυο γάμρμα να ενιαί σητ στωσή θσέη.
Τα υλοπιόπα μροπούν να ενίαι σε τχίυεας θιέεσς κια να μροπετίε να τςι δαβαιάεστε χρωίς πλβημόρα. Ατυό γνίταει γαιτί ο απρώνθονις εκέγλφοας δνε δαεβζιάι γάμρμα γάμρμα κθάε λξηέ αλλά τνη λξηέ σνα σνύλοο.

Ατίπτσυεο ε;