Programm Anagramm
-
hallo zusammen,
habe mal wieder eine frage:ich bin gerade dabei ein programm zu schreiben, dass herausfindet, ob es sich bei zwei wörtern um ein anagramm handelt.
ich gehe nun so vor, dass ich die buchstabe in den zwei strings zählen will. sobald ein buchstabe auftaucht, soll der wert um 1 erhöht werden. daher habe ich zwei strings deklariert für die zwei wörter und zwei arrays. 1x array mit dem alphabet drin und 1x array mit 26 felder, die im moment alle auf 0 stehen. sobald das programm bemerkt, dass im string z.b. ein a vorkommt, soll der wert in der array zum zählen um 1 erhöht werden.
irgendwie geht das aber nicht; hier mal das bisherige programm:
#include <stdio.h> #include <stdlib.h> int main() { char string1[20], string2[20], arrayalph[26]; int arrayzahl[26]; char k; int j, i; printf("Das Programm prueft, ob es sich um ein Anagramm handelt!\nBitte geben Sie das erste Wort ein: "); scanf("%s", string1); printf("\nBitte geben Sie das zweite Wort ein: "); scanf("%s", string2); for(j=0,k='a';j<26;k++,j++){ arrayalph[j]=k; arrayzahl[j]=0; } for(i=0;string1[i]!='\0';i++) { for(j=0;j<26;j++) { if(string1[j]==arrayalph[j]){arrayzahl[j]=1+arrayzahl[j];} } } printf("%d", arrayzahl[0]); return 0; }
ich will unten zum test nur mal ausgeben, was er für den buchstaben a ausrechnet. gebe ich ein a als 1. buchstabe beim 1. wort ein, zählt er mir alle buchstaben. gebe ich zwar ein a ein, aber nicht als erstes, dann bekomme ich immer den wert 0 raus.
wo stimmt das bisherige programm nicht? ich vermute, dass es irgendwas mit dem vergleich von dem string und dem array zu tun hat, wo ich dann den array wert um 1 erhöhen will?
-
Zeile 26, muss
string1[i]
sein (nicht j).
-
danke