String Array



  • Hallo Leute,ich habe folgendes Problem:
    ich möchte mehrere Sätze in Strings abspeichern,dazu möchte ich ein Array nutzen, um diese Strings später in einer schleife wieder abzurufen..das sieht dann ca. so aus

    //...
    #include <iostream.h>
    #include <string>
    using namespace std;
    //...
    //...
    string sSatz[10];
    sSatz[0] = "Satz1";
    sSatz[1] = "Satz2";
    //usw.
    
    for(int i = 0; i < 10; i++)
    {
    cout<<sSatz[i]<<endl;
    //...
    }
    //...
    

    Mal ganz abgesehen von der for-Schleife erhalte ich alleine schon für Zeile 8 4 Fehlermeldungen:
    error C2466: cannot allocate an array of constant size 0
    error C2501: 'sSatz' : missing storage-class or type specifiers
    error C2371: 'sSatz' : redefinition; different basic types
    error C2440: 'initializing' : cannot convert from 'char [6]' to 'int []'

    Wäre nett, wenn ihr mit weiterhelfen könntet.Ich hab irgendwie nen Black-Out.Danke 😃



  • Also, ich habe zwar keinen Ahnung von der Welt, aber ich bin mir sicher, dass man wenn man

    using namespace std;
    

    schreibt, bitte die Anweisung

    #include<iostream.h>
    

    zu

    #include<iostream>
    

    andern sollte!



  • Danke für den Vorschlag aber er funktioniert leider nich..abgesehen davon, dass ich mit WinApi arbeite(ich habs trotzdem hier gepostet,weil es nicht direkt etwas mit WinApi zu tun hat),tut es das trotzdem nich,auch wenn ich

    #include <iostream>
    using namespace std;
    

    schreibe



  • Zeig doch mal ein vollständiges Beispiel, das den Fehler reproduziert, ohne usw und ...



  • #include <string>
    #include <iostream>
    
    using namespace std;
    
    string Satz[10];
    
    Satz[0] = "Satz1";
    
    int main()
    {
    	return 0;
    }
    

    bei diesem Beispiel erhalte ich dir 4 eben genannten fehler..selbst wenn in der main funktion noch gar nichts getan wird.



  • Du kannst auch keinen Code platzieren der nirgends hingehört. Jede Anweisung muss in eine Funktion oder Methode.



  • Hallo,

    ich kenn mich mit C++ auch nicht so gut aus, aber wahrscheinlich muss dein Code einfach nur in die main- oder irgendeine andere Funktion. Dieses Beispiel funktioniert bei mir nämlich einwandfrei.

    # include <iostream>
    # include <string>
    
    using namespace std;
    
    int main () {
    	string Satz[10];
    	Satz[0]="Hallo, wie gehts dir?";
    	cout << Satz[0];
    
    	return 0;
    }
    


  • Naja ...

    string Satz[10];
    
    Satz[0] = "Satz1";// DAS ist dein Problem ... du kannst das so nicht einfach im globalen Raum machen ....
    
    #include <iostream>
    #include <string>
    
    const unsigned short string_count = 10;
    
    int main () 
    {
        std::string strings[string_count];
        strings[0] = "Hallo";
        strings[1] = "du!";
    
        for (unsigned short item = 0; item < string_count; ++item)
            std::cout << strings[item] << std::endl;
    
        return 0;
    }
    

    ...



  • hm..kk
    tuts jetzt,danke
    ich weiß zwar nich warum man das nich global machen darf aber ok^^



  • Bl1nk182 schrieb:

    ich weiß zwar nich warum man das nich global machen darf aber ok^^

    Warum? Weil es der C++-Standard nicht zulässt. Wenn du eine Sprache willst, bei der du Anweisungen einfach untereinander schreiben kannst, dann schau dir mal Python an.


Anmelden zum Antworten