[gelöst] strncmp

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
oli_f
Beiträge: 272
Registriert: 24.10.2003 12:27:05

[gelöst] strncmp

Beitrag von oli_f » 21.10.2006 01:57:08

hallo c++ leute

ich habe folgendes problem:

strncmp meldet in einer funktion von mir beim compilieren folgendes

Code: Alles auswählen

error: cannot convert ‘const std::string’ to ‘const char*’ for argument ‘1’ to ‘int strncmp(const char*, const char*, size_t)’
der code dazu:

Code: Alles auswählen

std::strncmp( current->getName(), name, 12)
wobei "current->getName()" folgenden rückgabewert hat:

Code: Alles auswählen

const std::string getName()
{
      return _name;   //  <- das ist ein std::string
};
und "name" im funktionsaufruf mitgegeben wird als

Code: Alles auswählen

const std::string & name
könnt ihr mir sagen was strncmp für ein problem hat??
Zuletzt geändert von oli_f am 21.10.2006 02:18:25, insgesamt 1-mal geändert.
error - divided by 0

Benutzeravatar
deadeye
Beiträge: 561
Registriert: 14.04.2004 15:32:18
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ukio, rechts hinterm Feld
Kontaktdaten:

Beitrag von deadeye » 21.10.2006 02:06:59

strncmp erwartet einen const char*, sprich ein C-Character-Array. Das sagt übrigens auch die gcc-Meldung. Du übergibst im aber einen std::string. Das geht nunmal nicht. Du kannst den std::string aber in ein C-Array umwandeln. Probier mal:

Code: Alles auswählen

std::strncmp( current->getName().c_str(), name, 12)
Wenn die Variable name auch vom Typ std::string ist, gilt dort dasselbe Spiel.

Siehe auch: http://www.cplusplus.com/ref/cstring/strncmp.html

HTH,
deadeye

oli_f
Beiträge: 272
Registriert: 24.10.2003 12:27:05

Beitrag von oli_f » 21.10.2006 02:17:35

ach ja klar! das braucht ja char arrays und die kann ja c++ nicht selber umwandeln hmm ich habe so lange nicht mehr c++ programmiert, wusste gar nicht mehr wie mühsam das ist. dachte es sei wegen den const's, dass es nicht geht. danke für die superschnelle antwort und hilfe für arme verwirrte, betrunkene programmierer.
error - divided by 0

Benutzeravatar
deadeye
Beiträge: 561
Registriert: 14.04.2004 15:32:18
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ukio, rechts hinterm Feld
Kontaktdaten:

Beitrag von deadeye » 21.10.2006 02:41:33

Betrunken programmieren is gefährlich. Kenne ich auch, vor allen Dingen wenn man sich den Code anschaut, wenn man dann mal irgendwann nüchtern is. Nicht schön.

Achja, und trotzdem immer schön lesen, was der gcc zu meckern hat, meistens ist es berechtigt und mit ein wenig Übung auch verständlich.

Antworten