Zum Inhalt springen

Buchstaben in Wort zählen und häufigsten in Zahl umwandeln


 Teilen

Empfohlene Beiträge

Hallo,

ich habe an der Uni einen Informatikkurs und dort haben wir jetzt eine Aufgabe, bei der wir ein Wort einlesen lassen sollen. Der erste Buchstabe, welcher nicht wiederholt wird, soll in einen Großbuchstaben geändert werden.

Bsp.

Einlesen: brettspiele

Originalstring: brettspiele

Buchstabe: B

Ergebnisstring: Brettspiele

Das ist der bisherige Ansatz:

#include <iostream>
#include <string>
using namespace std;

string text = "rentnerin";

int zaehler[26];
char einfach[26];

for (int pos = 0; pos < text.length(); pos++) {
    int ord = text[pos] - 'a';
    zaehler[ord] = zaehler[ord]+1;
}
for (int ord = 0; ord < 26; ord = ord+1 ) {
    cout << (char) (ord+'a') << " : " << zaehler[ord] << endl;
}
bool einzelnerchar = false;
for (int pos2 = 0; pos2 < 26; pos2 = pos2 + 1 ) {
    if (zaehler[pos2] == 1) {
        einfach[pos2] = (char) (pos2+'a');
    }
}
while (einzelchar == false) {
    for (int zaehler3 = 0; zaehler3 < text.length; zaehler3++) {
        a = zaehler[zaehler3];
        if
    }
}

Momentan bekommen wir so immer die einzelnen Buchstaben untereinander ausgegeben mit der Anzahl der Buchstaben. Die Buchstaben, welche einmal vorkommen haben werden auch festgestellt. Nun ist aber die Frage, wie wir es hinbekommen, die irrelevanten Buchstaben "wegzulassen". Außerdem müssen wir es noch schaffen mit Hilfe des Ascii Codes die Kleinbuchstaben in Großbuchstaben umzuwandeln (-32).

Wenn irgendwer Tipps geben kann wären wir sehr Happy.

Bearbeitet von Jarmila
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb Jarmila:

die Kleinbuchstaben in Großbuchstaben umzuwandeln (-32).

einfach 32 abziehen wäre falsch. Denn so würde man bei einem 'A' = 65  auf 33 kommen.
Und da steht dann in der ASCII '!'.

Such mal nach der Möglichkeit den ASCII Wert durch eine bitweise Manipulation zu beeinflussen.
Tip  an der 32er Stelle das Bit sicher auf 0 ändern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Minuten schrieb elgorgo:

einfach 32 abziehen wäre falsch. Denn so würde man bei einem 'A' = 65  auf 33 kommen.
Und da steht dann in der ASCII '!'.

Such mal nach der Möglichkeit den ASCII Wert durch eine bitweise Manipulation zu beeinflussen.
Tip  an der 32er Stelle das Bit sicher auf 0 ändern.

Wir haben ja Kleinbuchstaben, die ir in Großbuchstaben umändern wollen, deswegen -32 (z ist 122 und Z ist 90).

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.

 Teilen

Fachinformatiker.de, 2022 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...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung