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



## Sinac (8. Februar 2003)

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?


----------



## Tobias K. (8. Februar 2003)

moin

guck dir mal die funktion strcmp() an!


mfg
umbrasaxum


----------



## Sneaker (4. März 2003)

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()


----------



## Daniel Toplak (5. März 2003)

> 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:

```
#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


----------



## Sneaker (6. März 2003)

stimmt 
hab an die Klasse CString gedacht


----------

