Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem mit strcmp



avuton
17-01-2003, 08:38
Hallo ich habe eine Frage und zwar, warum ist a immer 0, nach zeile_analyse ist feld MA oder CB, das habe ich schon überprüft, aber warum ist dann a=0.
Überprüfe ich die Gleichheit der String falsch?
Zeile ist einfach eni String, der übergeben wird und dan wird von Zeil_analyse der erste Teil des String bis zum Komma abgetrennt und dann in feld geschrieben.
Danke
Das ist die Funktion:

int teste(char *zeile){
char feld[255];
char trenn=';';
int a=0;
zeile_analyse(zeile, feld, trenn);
printf("%s", feld);
if(strcmp(feld, 'MA')==0)a= 1;
if(strcmp(feld,'CB')==0)a=2;
printf("%d", a);
return a;
}

Jasper
17-01-2003, 09:44
Original geschrieben von avuton
Hallo ich habe eine Frage und zwar, warum ist a immer 0, nach zeile_analyse ist feld MA oder CB, das habe ich schon überprüft, aber warum ist dann a=0.
Überprüfe ich die Gleichheit der String falsch?
Zeile ist einfach eni String, der übergeben wird und dan wird von Zeil_analyse der erste Teil des String bis zum Komma abgetrennt und dann in feld geschrieben.
Danke
Das ist die Funktion:

int teste(char *zeile){
char feld[255];
char trenn=';';
int a=0;
zeile_analyse(zeile, feld, trenn);
printf("%s", feld);
if(strcmp(feld, 'MA')==0)a= 1;
if(strcmp(feld,'CB')==0)a=2;
printf("%d", a);
return a;
}

das ist falsch:
if(strcmp(feld, 'MA')==0)a= 1;
if(strcmp(feld,'CB')==0)a=2;

single-quotes bezeichnen typ char nicht char[].

richtig:
if(strcmp(feld, "MA")==0)a= 1;
if(strcmp(feld,"CB")==0)a=2;

das hätte dir eigentlich dein compiler sagen sollen (warning: make pointer from integer without cast o.s.ä.), vorrausgesetzt, du hast die warnings nicht abgeschaltet.

-j

avuton
17-01-2003, 09:50
ok danke funzt jetzt.