Ist es möglich mit einem Cout-Ergebnis weiter zu arbeiten?



  • Ich muss ein Programm schreiben, dass aus einem string, bestimmte Buchstaben solange herauslöscht, bis die Funktion beendet wird. Ich habe nun zwar ein Programm, dass es schafft einen Buchstaben aus dem Wort zu löschen, allerdings weiß ich nicht wie ich vorgehen muss, um aus dem neu entstandenen Wort wieder einen Buchstaben heraus löschen zu können. Am einfachsten wäre natürlich, wenn man mit dem cout Wert weiter arbeiten könnte, allerdings weiß ich nicht, ob bzw. wie das gehen würde.

    Ich stelle noch eine Kopie meines Programm rein, damit man versteht was ich meine:

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

    char string_bearbeitet(string a, char b) {

    int anz = a.length();
    for (int i{ 0 }; i <= anz; i++) {
    	if (a[i] == b)
    		cout << "";
    	else
    		return ( a[i]);
    }
    return (a[anz]);} int main() {
    string a;
    char b;
    cout << "Bitte geben Sie ein Wort ein! ";
    cin >> a;
    cout << "Bitte geben Sie ein, welchen Buchstaben Sie aus dem Wort editieren moechten: ";
    cin >> b;
    cout << string_bearbeitet(a,b);
    return 0;
    

    }

    Bitte um Hilfe.
    LG Leni



  • Schreibe in eine Zeile vor Deinem Code ``` und in eine Zeile nach Deinem Code ```. Alternativ markiere Deinen Code und klicke auf das </> in der Toolbar über dem Bearbeitungsfenster.
    Du kannst Deinen Beitrag auch im Nachhinein noch bearbeiten. Den Menüpunkt "Bearbeiten" findest Du hinter dem Drei-Punkte-Menü rechts unter Deinem Beitrag.

    Topic:

    #include <cstdlib>
    #include <algorithm>
    #include <string>
    #include <iostream>
    
    std::string delete_letter(std::string str, char letter)
    {
    	str.erase(std::remove(str.begin(), str.end(), letter), str.end());
    	return str;
    }
    
    int main()
    {
    	std::cout << "Please enter a word: ";
    	std::string word;
    	if (!(std::cin >> word)) {
    		std::cerr << "Input error :(\n\n";
    		return EXIT_FAILURE;
    	}
    
    	char letter_to_erase;
    	while (std::cout << "Which letter do you want to erase? ", std::cin >> letter_to_erase) {
    		word = delete_letter(word, letter_to_erase);
    		std::cout << "Result: \"" << word << "\"\n\n";
    	}
    }
    


  • Du kannst einen stringstream nutzen und dann das Ergebnis aus diesem auslesen und weiter verabeiten bzw. ausgeben.


Log in to reply