tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
365
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Mo1k Mo1k ist offline Mitglied Bronze
    Registriert seit
    Feb 2007
    Beiträge
    46
    Hallo,

    ich bin c++ Anfänger und versuche gerade folgendes:
    Ich will einzelne Buchstaben eines Wortes einlesen, diese dann in ein Array speichern und dann ausgeben.

    - IDE = Code::Blocks v10.05
    - Compiler = mingw32-g++

    hier ist mein Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
     
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        char a;
        char b;
        char c;
        char d;
        char array[] = "";
     
        cin>>a;
        array[0] = a;
        cin>>b;
        array[1] = b;
        cin>>c;
        array[2] = c;
        cin>>d;
        array[3] = d;
     
        cout << array[0] << array[1] << array[2] << array[3] << endl;
     
        return 0;
    }

    Wenn ich abcd eingebe bekomme ich adcd ausgegeben. Kann mir jemand sagen wieso ?

    Mfg Mo1k
    Geändert von Mo1k (18.12.11 um 11:55 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    a) Wenn du die chars sowieso im Array hast,
    kannst du auch das ganze Array mit cout ausgeben lassen.
    Kein Fehler, aber unnötig kompliziert:
    Code cpp:
    1
    
    cout << array[0] << array[1] << array[2] << array[3] << endl;
    Besser so:
    Code cpp:
    1
    
    cout << array << endl;

    b) Nach dem:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    
        cin>>a;
        array[0] = a;
        cin>>b;
        array[1] = b;
        cin>>c;
        array[2] = c;
        cin>>d;
        array[3] = d;
    musst du noch das Arrayende markieren:
    Code cpp:
    1
    
    array[4] = '\0';

    c) Der Hauptfehler:
    Dein Array ist nicht groß genug, um 4 Zeichen zu beinhalten.
    Du legst es mit []="" an, dH.: Es ist gerade groß genug für ""
    Also nur ein Zeichen für das Stringende, ergibt 1 char im Array.
    Du brauchst aber 4 Zeichen+Stringende = min. 5 chars.
    Code cpp:
    1
    
    char array[5];
    Was hier mit dem zu kleinen Array passiert, ist unvorhersehbar.
    Wahrscheinlich deswegen die falsche Buchstabenausgabe.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Mo1k Mo1k ist offline Mitglied Bronze
    Registriert seit
    Feb 2007
    Beiträge
    46
    Danke für die Hilfe
    funktioniert jetzt

    Gruß
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 25.09.10, 16:54
  2. Zahlen einzeln von Textdatei in ein Array einlesen
    Von meste im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 19.03.06, 16:43
  3. Antworten: 4
    Letzter Beitrag: 09.11.05, 15:55
  4. Zeichen in einem Array ersetzen
    Von Sotares im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 09.07.04, 21:34
  5. ASCII-Zeichen
    Von zed im Forum Delphi, Kylix, Pascal
    Antworten: 10
    Letzter Beitrag: 23.10.02, 01:55