Zum Inhalt springen

Vorkommen eines Zeichens in einem String zählen


backdraft

Empfohlene Beiträge

Original geschrieben von backdraft

Sorry, da hatte ich mich vielleicht n bisschen unklar ausgedrückt:

Nicht nur das, denn

CString
hat nichts mit Standard-C++ zu tun, und mit C schon gar nichts. ;)

--> Thema verschoben.

P.S.:

GTs Lösung funktioniert trotzdem, wenn du vorher aus dem CString einen const char* machst. Da reicht eine einfache Zuweisung, weil CString dafür einen cast-Operator hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

schlecht:

for (int i=0; i<strlen(szString); i++)

if(szString == cZeichen)

nAnzZeichen++;

gut:

int *y = (int*) &szString + strlen(szString)

for (int *i = (int*) &szString; i != y; ++i)

if(szString[*i] == cZeichen)

++nAnzZeichen;

Zeiger + Präfixnotation *gg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nicht böse sein, aber da sind ein paar kleine Fehler reingerutscht:

int *y = (int*) &szString + strlen(szString) // Vorsicht: int klappt nur bei Unicode oder WChar;

for (int *i = (int*) &szString; i != y; ++i)

{ // Klammern vergessen, sonst wird nur einmal durchgerauscht

if(szString[*i] == cZeichen) // nur *i ohne szString-Index, weil der Zeiger i selber die Adresse von szString ist

++nAnzZeichen;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

@A-RAM:

Dass das ganze nur funktionieren kann, wenn sizeof int == sizeof char, hat Crush ja schon geschrieben. Aber auch der Adressoperator vor szString ist in beiden Fällen falsch. Und wenn du statt int* (wieso eigentlich int*?) char* verwendest, sind auch die casts nicht mehr notwendig.

@Crush:

Die Klammern sind in diesem konkreten Fall nicht zwingend notwendig. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...