strstr in *matrix[]



  • grüße!

    ich hab folgendes problem: ich möchte eine suchmatrix erstellen und bin dabei für s'horizontale suchen auf strstr gestoßen was ich gern verwenden möchte... aber leider findet es nur wenn ich nach einer ganzen zeile zB. NMEXPRESSEEN suche aber suche ich nach EXPRESS bekomme ich null zurück... hab leider auch mit der forumsuchfunktion nichts wirklich brauchbares gefunden...

    danke!

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    void printMatrix(char **matrix, int h_matr) {
    	int i;
    
    	for(i = 0; i < h_matr; i++) {
    			printf("%s",matrix[i]);
    		printf("\n");
    	}
    }
    
    int searchHorizontal(char **matrix, int h_matr, int w_matr, char *input){
    	int found = 0;
    	int i;
    	char *strptr;
    
    	for(i = 0; i < h_matr && found != 1; i++) {
    		strptr = strstr(matrix[i], input);
    		if (strptr != 0)
    			found = 1;
    		else
    			found = 0;
    	}
    	return found;
    }
    
    int main(void) {
    	int w_matr = 12;
    	int h_matr = 12;
    	char input[w_matr+1];
    	char *matrix[] =   {    "OESTERREICHQ",
    			        "ERMITTELNYFA",
    				"MOSENDENEPAL",
    				"PAOILOOAEOBI",
    				"FOFPCKSPSKFN",
    				"AWTREHTTEEHZ",
    				"NLWEDREIARIE",
    				"GPAFODRRNGNR",
    				"EUROPANPHTWI",
    				"NMEXPRESSEEN",
    				"PINFANTASTIC",
    				"WAHNSINNOKST" };
    
    	printMatrix(matrix, h_matr);
    	printf("Search the Matrix: ");
    	fgets(input, w_matr+1, stdin);
    
    	searchHorizontal(matrix, h_matr, w_matr, input);
    	return 0;
    }
    


  • hab den fehler gerade gefunden... das problem liegt bei fgets() denn das liest \n mit ein und somit kann man nur die ganze zeile miteinander vergleichen... mid scanf() gibts kein problem.


Anmelden zum Antworten