+ Antworten
Ergebnis 1 bis 4 von 4

C++ Hilfe bei Programm

Eine Diskussion über C++ Hilfe bei Programm im Forum Technik Ecke. Teil des Off Topic-Bereichs; Hey, in der Schule sollten wir ein Programm schreiben, welches mehrere Dinge macht. Ausschlaggebend ist aber nur die Programmierung des ...

  1. #1
    Oberfeldwebel
    Avatar von OG Loc
    Registriert seit
    21.04.2007
    Ort
    Düsseldorf
    Alter
    24
    Beiträge
    2.585
    Name
    Theo

    C++ Hilfe bei Programm

    Hey, in der Schule sollten wir ein Programm schreiben, welches mehrere Dinge macht. Ausschlaggebend ist aber nur die Programmierung des Teils bei dem die Kleinbuchstaben, Großbuchstaben und Sonderzeichen gezählt werden. Das funktionierte auch, aber dann sollten wir das in einer externen Funktion schreiben.

    Was sind meine Fehler? Hab das auch ohne Zeiger gemacht, aber kriegs nicht hin, dass es ausgegeben wird.

    Hier ohne Funktion (läuft 1a)

    Spoiler:
    Code:
    #include <iostream>
    // #include <stdlib.h>
    // #include <cstdlib>
    
    using namespace std;
    void zeichenkette(int *, int *, int *);
    int main(void)
    { int zahl1,zahl2=55;
        int count1, count2, count3;
      cout << "Inhalt von zahl2 : " << zahl2 << endl;
      cout << "Bitte zahl1 einlesen :  ";
      cin >> zahl1;
      cout << "Inhalt von zahl1 : " << zahl1 << endl;
      
      for (int i = 1; i <= 10; i++)
        cout << i << "   " << i*i << endl;
      
      string name1="Meier",name2="Otto",name3;
     // name2 += name1;
      name3 = name2 + " " + name1;
      if (name1 < name2)
        
    cout << name1[2];
      
    zeichenkette(&count1,&count2,&count3);
    cout << "Die Zeichenkette hat " <<count1<< " Kleinbuchstaben" <<endl;
    cout << "Die Zeichenkette hat " <<count2<< " Grossbuchstaben" <<endl;
    cout << "Die Zeichenkette hat " <<count3<< " Sonderzeichen" <<endl;
    
      return 0;
    }
    void zeichenkette(int *cou1, int *cou2, int *cou3)
    {
    for(int j = 0; j < name1.length(); j++)
      {  
          int *cou1, *cou2, *cou3;
       
        if ('a' <= name1[j] && name1[j] <= 'z')
        {
            *cou1 += 1;
        }
        else if('A' <= name1[j] && name1[j] <= 'Z')
        {
            *cou2 += 1;
        }
        else
        {
            *cou3 += 1;
        }
    }
    }


    und hier mit funktion

    Spoiler:
    Code:
    #include <iostream>
    // #include <stdlib.h>
    // #include <cstdlib>
    
    using namespace std;
    void zeichenkette(int *, int *, int *);
    int main(void)
    { int zahl1,zahl2=55;
        int count1, count2, count3;
      cout << "Inhalt von zahl2 : " << zahl2 << endl;
      cout << "Bitte zahl1 einlesen :  ";
      cin >> zahl1;
      cout << "Inhalt von zahl1 : " << zahl1 << endl;
      
      for (int i = 1; i <= 10; i++)
        cout << i << "   " << i*i << endl;
      
      string name1="Meier",name2="Otto",name3;
     // name2 += name1;
      name3 = name2 + " " + name1;
      if (name1 < name2)
        
    cout << name1[2];
      
    zeichenkette(&count1,&count2,&count3);
    cout << "Die Zeichenkette hat " <<count1<< " Kleinbuchstaben" <<endl;
    cout << "Die Zeichenkette hat " <<count2<< " Grossbuchstaben" <<endl;
    cout << "Die Zeichenkette hat " <<count3<< " Sonderzeichen" <<endl;
    
      return 0;
    }
    void zeichenkette(int *cou1, int *cou2, int *cou3)
    {
    for(int j = 0; j < name1.length(); j++)
      {  
          int *cou1, *cou2, *cou3;
       
        if ('a' <= name1[j] && name1[j] <= 'z')
        {
            *cou1 += 1;
        }
        else if('A' <= name1[j] && name1[j] <= 'Z')
        {
            *cou2 += 1;
        }
        else
        {
            *cou3 += 1;
        }
    }
    }
    Alles mitnehm', viel zu wenig Kraft haben
    Doch vor dem Tod meinen Wunschzettel abhaken
    Und ohne Wünsche sterben, scheiß auf fünfzig werden
    Ist mir egal, wann, Hauptsache, glücklich sterben

  2. #2
    Ohne mir jetzt alles genau anschauen zu wollen (sieht btw. ziemlich wild aus), ist die Variable "name" in der Funktion "zeichenkette" nicht deklariert. Wahrscheinlich willst du den Namen auch noch als Parameter übergeben?!

    Wenn du innerhalb einer Funktion eine Variable deklarierst, ist sie auch nur in diesem Scope gültig und für andere Funktionen unbekannt.
    Ich gehe davon aus, dass du einen Compilerfehler bekommst?!

    Burning Squirrel

    Und nicht vergessen:
    Dieser Beitrag hat Superkuh Kräfte!

  3. #3
    Oberfeldwebel
    Avatar von OG Loc
    Registriert seit
    21.04.2007
    Ort
    Düsseldorf
    Alter
    24
    Beiträge
    2.585
    Name
    Theo
    Sah am Anfang noch anders aus, aber dann hatte ich nen Fehler, habs umgebaut etc. ^^ und jetzt siehts unordentlich aus. Folgenden Fehler krieg ich

    C:\Users\xxx\AppData\Local\Temp\eins2.cpp In function `void zeichenkette(int*, int*, int*)':
    34 C:\Users\xxx\AppData\Local\Temp\eins2.cpp `name1' undeclared (first use this function)

    muss ich name1 auch übergeben in der parameterliste?! also das dann noch in den prototypen folgendes reinkommt:

    string * und dann halt in der ufnktion

    string *nam ?

    und dann halt die dinge in name umbenennen?!
    Alles mitnehm', viel zu wenig Kraft haben
    Doch vor dem Tod meinen Wunschzettel abhaken
    Und ohne Wünsche sterben, scheiß auf fünfzig werden
    Ist mir egal, wann, Hauptsache, glücklich sterben

  4. #4
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.056
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    äh, also ich als relativer noob würde zu deiner fehlermeldung sagen:
    beachte myersger posting
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •