Zahl Mit N komma stellen darstellen Nur Wie ?????



  • hehe schon wieder ne echt bescheidene frage....

    also das m. der operatorüberladung schiebe ich noch n mom nach hinten... damit muss ich mich aber auch noch beschäftigen.... mein prob sind warscheinlich (klassen ?)-k.p was das genau ist... also n namespace habsch ja schon kapiert.... egahl.... thema wechsel... volgendes problem hatt sich aufgetan...

    using namespace std;
    
    int i;
    string hallo;
    
    for (i=0;i<5;i++)
    {
        hallo[i]=1;//jezt sollte ja jede stelle (von 0 - 4) eine 1 beinhalten....
    }
    
    cout << hallo << endl;
    

    also mit ner schleife lässt sich der string hallo darstellen... warum geht das nicht mit cout ??? liegt bestimmt wie bei arreys an der \0 m. der man den string abschließen muss oder ? was kann ich tun ?????

    noch ein problem:

    //************ funktioniert ************
    using namespace std;
    int laenge,i;
    string str1 = "1234";
    string str2;
    
    laenge = str1.size();
    
    //************ funktioniert nicht !!!!!!!! ************
    for(i=0;i<laenge;i++)
    {
        str2[i]=1; // str1 solte so groß wie str2 sein und m. einsern gefüllt....
    }
    laenge = str2.size();
    

    hab das zwar m. normalen arrays lösen können aber wie mache ich das denn so ? u. wo issn der unterschied zw. char array u. string ????

    Mfg Baltur



  • kennt jemand nen gutes toturial was die iostream erklährt inc derer funktionen ?
    am besten noch auf deutsch??? *GGG* würd mich wirklich freuen....

    mfg Baltur



  • Mit dieser Zeile:

    hallo[i]=1;
    

    hast du dir deinen String bereits zerschossen und alles was danach kommt ist undefiniertes verhalten (und da sollte wohl 'l' statt l stehen, aber das ist ein anderes Thema). Du kannst mit [] nicht auf Teile des Strings zugreifen, die nicht existieren.

    wo issn der unterschied zw. char array u. string
    

    char array ist ein Relikt aus C-Zeiten. Das benutzt man in C++ (von sehr wenigen Ausnahmen abgesehen) nicht mehr für Strings. std::string ist der Typ, den man stattdessen benutzt.



  • hehe was heist das jezt im klartext ? den string erst innen char umwandeln bevor es geht oder wie oder was ? k.p... was mir das genau sagen soll *g*

    wie kann ich denn eigendlich einzelnde stellen des strings verändern wenn net m.:

    bspstring[i]=1; //<--- ite stelle als 1 ??? wie ???
    

    mfg baltur



  • Nein! Um es noch mal klar zu formulieren: Du benutzt in C++ keine char-Arrays um mit Strings zu handhaben.

    Einzelne Zeichen kann man zum Beispiel so an einen String anhängen:

    hallo += '1';

    Zu deinem Edit: Einzelne Stellen eines Strings verändern kannst du genauso, wie du es geschrieben hast. Aber dazu müssen diese Stellen erst mal da sein. Bei einem String der Länge 0 kannst du die erste Stelle (mit dem Index 0) naturgemäß nicht verändern, weil sie nicht existiert.



  • aber ? wie kann ich rausfinden welche stelle des strings welche ziffer besitzt ????



  • Zuviel Editiererei 😉

    Auslesen geht genauso wie Schreiben.



  • hö ??? wie meinen ???? was mache ich denn wenn ich z.b 2 strings habe, die gleich lang sind und von diesen beiden jede einzelnde ziffer addieren will und die ergebnisse jeweils einer integer variable zuordnen will ???
    bitte mal n beispiel... m. chars weis ich wies geht... m. den strings hatts auch immer geklappt, aber der string war scheinbar wirklich danach zerschossen... hmmm... irgendwass muss man doch machen können *verzweifel*



  • Ziiffer addieren? Du meinst, du willst zwei gleichlange Strings nehmen, die ausschließlich Ziffern enthalten, diese Ziffern als Zahlen interpretieren und für jede Stelle die Summe dieser beiden Zahlen ausgeben? Sorry, habe jetzt nicht den gesamten Thread verfolgt (ist ein Bißchen länglich).

    Unter der Annahme, daß ich deine Anforderungen richtig verstanden habe, ginge das zum Beispiel so:

    for (int i=0; i<String1.size(); ++i)
    {
        std::cout << static_cast<int> ((String1[i]-'0') + (String2[i]-'0'));
    }
    

    (die Zahlen werden hier ausgegeben und nicht einer Variable zugewiesen, aber das Prinzip sollte klar sein).



  • hehe herzlichen dank das sieht schon mal sehr brauchbar aus... maln bissl dran rummbauen *g*

    dazu noch ne frage... was bedeutet static cast int ????

    Mfg Baltur



  • hmmm.... irgendwie keine chance.... ich glaub ich binn echt zu doof.....
    aber noch ne frage *g* dann wieder bei den chars.... gibt es ne möglichkeit die i´te stelle eines char arrays in integer umzuwandeln ? wenn ja wie ?

    mfg baltur



  • also jezt meine allerlezte frage zum thema strings.....

    irgendwie muss es doch möglich sein die länge eines strings vorzudefinieren und zeichen die an ner bestimmten stelle stehen zu verändern....

    oder geht das jezt wirklich nur bei arrays ? *verzweifel*

    habs gefunden m. insert.... aber durch anhängen geht ja auch wenn man das brett vom kopf nimmt *g* Danke für die viele viele Hilfe !!!!!

    Mfg Baltur



  • Baltur schrieb:

    aber noch ne frage *g* dann wieder bei den chars.... gibt es ne möglichkeit die i´te stelle eines char arrays in integer umzuwandeln ? wenn ja wie ?

    int i = c - '0';
    

    Baltur schrieb:

    also jezt meine allerlezte frage zum thema strings.....

    irgendwie muss es doch möglich sein die länge eines strings vorzudefinieren und zeichen die an ner bestimmten stelle stehen zu verändern....

    Mit resize() legst du die Größe fest - auf die einzelnen Zeichen kannst du dann über den Index-Operator [] zugreifen.


Anmelden zum Antworten