Beiträge von kirchi123

    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.

    Ich würde gerne ein Programm schreiben, das die Anzahl der Zeichen in einer Datei zählt. Der Dateiname soll als Parameter übergeben werden. Ich hab das Programm so geschrieben:

    #include <iostream>
    #include <string.h>
    #include <fstream>
    #include <cstdlib>

    using namespace std;

    static void usage (char *porgname) {
    cout << " Parameter nicht korrekt ";
    exit(1);
    }

    static void error (char *progname, char **errorMessage) {
    cout << " ERROR in " << " ue5.C " << errorMessage << endl;
    exit(1);
    }


    int main (int argc, char *argv[]) {
    cout << endl;
    cout << endl;
    FILE *datei;
    char zeichen;
    int zaehler = 0;
    int n = atoi (argv[1]);
    datei = fopen("text.txt", "r");
    if (argc !=2) {
    cout << " Fehler ";
    }
    datei = fgets(argv[1] != EOF);
    {
    zaehler++;
    }
    cout << " Die Datei enthält: " << zaehler << " Zeichen ";
    fclose(datei);
    }

    Das Programm funktioniert aber leider nicht. Es kommt immer eine Fehlermeldung. Ich bin noch ein Anfänger in C++. Könnte mir jemand helfen.
    Vielen Dank im Vorraus.

    Ich bin noch ein C++ Anfänger und habe ein Problem beim Thema Funktionen. Ich möchte ein Programm schreiben, dass den Array mit den Zahlen 5,7,4,3,9,10,1 einließt und in einer rekursiven Funktion, das Array durchläuft und nur die Zahlen ausgibt die kleiner als das bisherige Minimun, also z.b. min 5 nach der 1. Zahl, 7 wird nicht ausgegeben weil größer, dann wird 4 ausgegeben und das min wird auf 4 gesetzt, dann wird 3 ausgegeben und das min auf 3 gesetzt u.s.w. Das Durchlaufen des Arrays soll aber in rekursiver Funktion passieren ohne Schleife. Ich habe bisher folgenden Code, aber dieser gibt immer nur die Zahl 0 aus. Vielleicht könnte mir jemand helfen.

    #include <iostream>
    using namespace std;

    int arr[7]={5,7,4,3,9,10,1};
    int min=30;
    int pos=0;

    int durch(int pos,int min) {

    if (pos>7)
    return

    pos=arr[pos];
    if (pos<min) {
    cout << pos;
    min=pos;
    durch((++pos),min);
    }
    else if (pos>min) {
    durch((++pos),min);
    }
    else;
    }

    int main () {
    int min;
    durch(pos, min);
    system("PAUSE");
    return 0;
    }


    Und vielleicht könntet ihr mir ein Paar Tipps geben, wo man im Internet das Kapitel Funktionen gut erklärt bekommt.

    Vielen Dank im Vorraus.