PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : char* Variable hat nicht den erwateten Wert



tuxboy
27-12-2002, 16:52
Hi,
zuerst der Code-Ausschnitt; geht so schneller, denk ich:



void func () {
struct _finddata_t ff;
char fileName[260];
char *pch;

/* mit Hilfe von _findfirst bzw. _findnext den Inhalt eines Verzeichnisses auslesen;
* beinhaltet einige Datei-Informationen (name, size, time (create, access, write))/*
[...]

/* ff enthält nun alle Informationen über eine Datei; können mit ff.name, ff.size, etc ausgelesen werden */

fileName = ff.name;
pch = strrchr (fileName, '.');
if (pch == ".txt") { // DAS HIER FUNKTIONIERT NICHT !!!
[...]
}
[...]
}


wenn ich nun den Wert von pch in einem GtkWidget ausgebe sieht es normal aus (bspw.: .txt). Aber ich kann den Wert nicht vergleichen, denn pch ist niemals .txt.
Sollte doch aber eigentlich sein?!? *grübel*

Wäre super, wenn ihr mir schnell helfen könntet. Danke,

Jasper
27-12-2002, 19:30
Original geschrieben von tuxboy

if (pch == ".txt") { // DAS HIER FUNKTIONIERT NICHT !!!


man kann strings nicht mit operator '==' vergleichen.

verwende 'strncmp' oder 'strcmp'.

-j

anda_skoa
28-12-2002, 15:40
Außerdem muß du statt der Zuweisung
fileName = ff.name
den String kopieren: siehe strncopy

Ciao,
_