Funktionen



  • Ich habe eine Frage und zwar möchte ich ein Programm schreiben, dass einen String einliest und dann in einer Funktion die Buchstaben a,e,o durch ii,kk,mm ersezten. Das ersetzen funktioniert schon, aber es wird immer wenn ein a durch ii auch der nächste Buchstabe im String überschrieben. Wie kann ich das verhindern und das Array einfach verlängern, dass der nächste Buchstabe überschrieben wird. Das Programm sieht im Moment so auf:

    #include<iostream>
    using namespace std;

    char ersetz(char *arr) {
    int count=0;
    char arr2[100];
    for (int i=0;arr[i]!='\0';i++) {
    if (arr[i]=='a') {
    arr2[i]='i';
    arr2[i+1]='i';
    count++;
    i=i+1;
    }
    else if (arr[i]=='e') {
    arr2[i]='k';
    arr2[i+1]='k';
    count++;
    i=i+1;
    }
    else if (arr[i]=='o') {
    arr2[i]='m';
    arr2[i+1]='m';
    count++;
    i=i+1;
    }
    else {
    arr2[i]=arr[i];
    }
    }
    cout << arr2 << endl;
    cout << count;
    }

    int main() {
    char r;
    char arr[50];
    do
    {
    cout << " Bitte geben Sie die Zeichenkette ein: ";
    cin >> arr;
    ersetz(arr);
    cout << endl << endl;
    cout << " Wollen Sie das Programm nochmals ausfuehren, dann druecken Sie r oder R: ";
    cin >> r;
    cout << endl;
    }
    while (r == 'r' || r == 'R');
    cout << endl << endl << endl;
    return 0;
    }

    Könnte mir vielleicht jemand helfen.
    Vielen Dank im Voraus.



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Musst du char -Arrays benutzen? Dann wird das ganze nämlich relativ mühsam. In C++ kannst du ansonsten die Klasse std::string verwenden, die vereinfacht dir einiges.

    Falls du es mit C++ (also std::string ) lösen willst, kannst du mit find() und insert() etwas anfangen. Schau doch mal bei www.cplusplus.com nach.



  • Vielen Dank werd mir das mal anschauen.





  • Ich hab da noch eine Frage zum obrigen Beispiel. Wie könnte ich das den machen, wenn ich das im String ersetzten möchte, also die Buchstaben o,a,e und diese durch doppelte Buchstaben ersetzen und das in einem 2. String speichern möchte?

    Vielen Dank im Voraus.



  • Eben mit find() und insert() . Damit lässt sich auch leicht eine eigene Funktion schreiben. Oder du benutzt etwas wie boost::regex (wenn du auch sonst damit arbeitest). 😉


Anmelden zum Antworten