[C++]Char/String-Problem

DeChecka

Erfahrenes Mitglied
Hi!
Ich habe eine Funktion, die einen String (also die Klasse aus der Library) als Parameter erwartet.
Code:
bool SchluesselwortPruefen(string schluesselwort)
{
 fflush(stdin);
 cout << schluesselwort.length();
 getch();
 //usw.
}

Jetzt soll einfach die Länge des Strings angezeigt werden. Das geht ja auch so.
Wenn ich jetzt allerdings die einzelnen Zeichen bearbeiten will nach der Längenabfrage, hab ich ein Problem.

Ich habe dann folgendes versucht:
Code:
bool SchluesselwortPruefen(string schluesselwort)
{
 fflush(stdin);
 cout << sizeof(schluesselwort.c_str());
 getch();
 //usw.
}

Da wird dann allerdings für jede beliebige Stringlänge 4 angezeigt!?

Auch so geht es nicht:

Code:
bool SchluesselwortPruefen(char schluesselwort[])
{
 fflush(stdin);
 cout << sizeof(schluesselwort);
 getch();
 //usw.
}

Ich bin ziemlich ratlos... Nutze Dev-C++.
Hoffe, ihr könnt mir weiterhelfen...

MfG
DeChecka
 
length() ist das einzig richtige, sizeof( ....c_str() ) gibt dir die Grösse eines const char-Pointers zurück (bei 32bit-Programmen 4).

Das Problem ist hier nicht die Ausgabe, sondern das Einlesen bzw. Bearbeiten. Zeig doch mal den Code vom Bearbeiten des Strings.
 
Naja... also ich will jetzt einfach als Parameter der Funktion ein Wort angeben, z.B. so:
Code:
SchluesselwortPruefen("hallo");

Dann soll eine Datei zeichenweise gelesen werden.
Und immer wenn dann ein 'h' kommt, dann soll überprüft werden auf 'a' und so weiter... so lange, wie das Wort eben geht, bis vollständig feststeht, ob das gesuchte Wort enthalten ist oder nicht...

MfG
DeChecka
 
moin


Bei char-Array nimm strlen:
Code:
bool SchluesselwortPruefen(char schluesselwort[])
{
 fflush(stdin);
 cout << strlen(schluesselwort);
 getch();
 //usw.
}


mfg
umbrasaxum
 
Zurück