[C/C++] char array mit string vergleichen

Sinac

Erfahrenes Mitglied
Hallo!
Kann mir jemand sagen wie ich ein char array mit einem string vergelchien kann?
Das Array wird mit einer Zeile aus einer Datei gefüllt, hat also
unterschiedliche längen. Der String hat immer den gleichen Wert.

char myarray[100];
String mystring;
...
also z.B:

if(myarray == mystring)

Das geht aber nicht, "Ungültige Strukturoperation"

Irgendwer ne Idee?
 
stell doch einen Zeiger auf deinen Bufferbereich in der klasse. du kannst einen zeiger auf den Speicherbereich des Strings stellen indem du die methode GetReleaseBuffer()
Bsp: myZeiger = myString.GetBuffer(80);
dann müsstest du mit strcmp theoretisch beide strings mit einerander vergleichen können musst aber den buffer mit ReleaseBuffer() frei geben
Ist zwar nur Theorie aber scheint für mich schlüssig ;) muss zugeben benutze die CString klasse auch erst seid kurzem...
also nicht hauen wenns falsch ist *g*

edit: das ding heisst GetBuffer()
 
Zuletzt bearbeitet:
Ist zwar nur Theorie aber scheint für mich schlüssig muss zugeben benutze die CString klasse auch erst seid kurzem...
Nur mal so am Rande, String ist nicht gleich String.
@Sinac
Wenn du den string aus der STL verwendest, dann könntest du den Vergleich volgendermassen machen:
Code:
#include <string>
using namespace std;

char myarray[100]; 
string mystring; 
  .
  .
  .
if(strcmp( myarray, mystring.c_str() == 0)
{
  // die beiden sind gleich
  .
  .
  .
}

Das ist aber nur eine Möglichkeit. Beim Verarbeiten von "Strings" wird dir jeder C/C++-Programmierer eine andere Methode aufzeigen, denn es gibt einfach zuviele String-Klassen.

Gruss Homer
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück