C string vergleich mit array

m0e

Cadet 4th Year
Registriert
Nov. 2003
Beiträge
114
Hi,

habe eine Aufgabe bei der ich nicht weiter komme!:freak::( Bitte um Hilfe;)

Die Funktion findStrings() ist wie folgt zu deklarieren:
void findString (char *c);
Die Funktion gibt alle gefundenen Strings und deren Anzahl auf der Konsole aus.
Rufen Sie die Funktion findString() mit mindestens einem der vordefinierten
fünfstelligen String-Zeiger auf.




Mein Versuch der nicht läuft (Sofort crash)... und erstmal nur gefunden oder nicht gefunden ausgeben soll.


Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LISTSIZE 10

int main()
{
    char *c1 = " astro"; char *c2 = "mobile"; char *c3 = "stift";

    findString(*c2);
return 0;

}


void findString (char *c){

const char * list[LISTSIZE] =
{
"astronomie", "stifthalter", "mobile",
"sternthaler", "astrophysik", "astronaut", "mobilar",
"stiften", "theater", "stiftfarbe", "mobilitaet"
};

for (int i=0; i < LISTSIZE; i++){
        int res =strncmp(list[i], *c, 5);
        if(res == 0)
      printf("gefunden");
else
    printf("nicht gefunden");


}



   }




   }
 
Zuletzt bearbeitet:
erstmal folgende Fragen:

1) Was heißt bei Dir "Sofort crash" ?

2) Bist Du mal mit dem Debugger durchgestept ?

3) Woher kommt Dein "i" im strcmp ?
 
...
 
Zuletzt bearbeitet:
ups ja hatte die for schleife entfernt.... und array beginnt doch mit index 0 daher hbe ich bis 10 definiert
error.JPG
 
Zuletzt bearbeitet:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LISTSIZE 11

void findString(char *c);

int main()
{
	char *c1 = "astro"; char *c2 = "mobile"; char *c3 = "stift";

	findString(c2);
	
	return 0;
}

void findString(char *c) {

	const char * list[LISTSIZE] =
	{
		"astronomie", "stifthalter", "mobile",
		"sternthaler", "astrophysik", "astronaut", "mobilar",
		"stiften", "theater", "stiftfarbe", "mobilitaet"
	};

	for (int i = 0; i < LISTSIZE; i++) {
		int res = strncmp(list[i], c, strlen(c));
		if (res == 0)
			printf("gefunden\n");
		else
			printf("nicht gefunden\n");
	}
}
 
:o:love::love:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LISTSIZE 11

void findString(char *c);

int main()
{
	char *c1 = "astro"; char *c2 = "mobil"; char *c3 = "stift";

	findString(c3);

	return 0;
}

void findString(char *c) {
int z=0;
	const char * list[LISTSIZE] =
	{
		"astronomie", "stifthalter", "mobile",
		"sternthaler", "astrophysik", "astronaut", "mobilar",
		"stiften", "theater", "stiftfarbe", "mobilitaet"
	};

	for (int i = 0; i < LISTSIZE; i++) {
		int res = strncmp(list[i], c, strlen(c));
		if (res == 0){
z++;
			 printf("\n %s Passt mit %s\n",c, list[i]);


			 }

	}
printf ("Anzahl treffer: %d\n", z);

   }
 
Zuletzt bearbeitet:
Zurück
Oben