String in Liste suchen



  • Guten Tag,

    ich möchte in einer Liste nach einem String suchen, habe bis jetzt folgendes:

    void suche(char *suchstring) {
    	struct node *myNode;
    	int i = 0;
    	for (i = 0; i != INDIZES; i++) {
    		if (hashTable[i].count == 0)
    			continue;
    		myNode = hashTable[i].head;
    		if (!myNode)
    			continue;
    		while (myNode != NULL) {
    			if(strcmp(myNode->name,suchstring)==0){
    					printf("%-12d", myNode->key);
    					printf("%-15s", myNode->name);
    					printf("%d\n", myNode->age);
    					myNode = myNode->next;
    				}
    				}
    			}
    	}
    

    Dabei wird nur ein Zeichen eingelesen, vorhin hat es auch funktioniert, bei einem Zeichen. Jetzt hängt es sich allerdings auf, nach der Eingabe mit fgets.

    Wie kann man den gesamten String vergleichen?

    Vielen Dank im Voraus



  • Dabei wird nur ein Zeichen eingelesen, vorhin hat es auch funktioniert, bei einem Zeichen. Jetzt hängt es sich allerdings auf, nach der Eingabe mit fgets.

    Ägypten?

    Wie kann man den gesamten String vergleichen?

    Mit strcmp.

    - globale Variablen -> Schrott
    - was hat eine verkettete Liste mit einer Hashtable zu tun?
    - hast du mehrere "Hashtables" mit jeweils einer verk. Liste?
    - zeige deine Datenstruktur-Definitionen komplett
    - Zeile 15 ist falsch positioniert



  • #define INDIZES 10
    
    struct hash *hashTable = NULL;
    
    struct node {
    	int key, age;
    	int count;
    	char name[100];
    	float preis;
    	struct node *next;
    };
    
    struct hash {
    	struct node *head;
    	int count;
    };
    

Log in to reply