string anhängen - aber irgendwie klappts nicht.



  • hey leute, könnt ihr mir helfen?

    ich programmiere net so oft in c++, darum hab ich sicherlich extrem kompliziert das programm geschrieben und es klappt ja eh net richtig 😉

    was ich allerdings wissen muss, warum ist die ausgabe von 'neuerstring' so üübel? ich weiss nicht weiter..

    kurz zu meinem problem, welches ich hier versuche zu lösen.

    ich habe einen string - alterstring - und er soll nach doppelten buchstaben durchsucht werden. in die variable - neuerstring - soll der alte ohne die doppelten buchstaben geschrieben werden.... 😞

    könnte mir da einer helfen?

    #include <iostream>
    #include <stdlib.h>
    #include <cstring>
    #include <string>
    
    using namespace std;
    char * neuerstring;
    char * alterstring;
    char * temp;
    
    int main(int argc, char *argv[])
    {
      neuerstring = "";
      alterstring = "jahaa";
      int count = 0,pos = 0,nstrlen;
      temp = alterstring;
    
        for(int a = 0; a < strlen(alterstring); a++)
        {
            for(int i = 0; i < strlen(temp); i++)
            {
                if(temp[i] == alterstring[a])
                {
                    nstrlen = strlen(neuerstring);
                    for(int b = 0; b < nstrlen; b++)
                    {
                        if(neuerstring[b] == alterstring[a])
                        {
                            count++;
                            cout << count << "\n";
                        };
                    };
                    if(count == 0)
                    {
                        neuerstring += alterstring[a];
                        cout << alterstring[a] << " " << strlen(neuerstring) << " " << neuerstring << "\n";
                    };
                    count = 0;
                };
            };
        };
      system("PAUSE");
      return 0;
    }
    


  • Du hast keinen Speicher alloziert den du auch beschreiben darfst.

    Gruß



  • ähh...? wie mach ich das? bin ein ziemlicher anfänger was das angeht



  • char einBischenSpeicher[128]; // Speicher für 127 Zeichen, denn da muss noch die terminierende Null hin

    Gruß



  • hm also da muss ich dann alles umschreiben, und das krieg ich nicht hin 😞

    verdammt!



  • flo_brinkmann schrieb:

    hm also da muss ich dann alles umschreiben, und das krieg ich nicht hin 😞

    verdammt!

    Komm die notwendigen Änderungen sind ja nur minimal

    #include <iostream>
    //#include <stdlib.h>  // neu und alte header mischen gibt nur Ärger
    #include <cstdlib.>
    #include <cstring>
    #include <string>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    { // warum sollten die strings global sein
      char neuerstring[128] = ""; // jetzt haben wir etwas platz
      char *alterstring = "jahaamuha";
      char * temp;
      int count = 0,pos = 0,nstrlen;
      temp = alterstring;
    
        for(int a = 0; a < strlen(alterstring); a++)
        {
            for(int i = 0; i < strlen(temp); i++)
            {
                if(temp[i] == alterstring[a])
                {
                    nstrlen = strlen(neuerstring);
                    for(int b = 0; b < nstrlen; b++)
                    {
                        if(neuerstring[b] == alterstring[a])
                        {
                            count++;
                            cout << count << "\n";
                        };             // semicolon ist nicht notwendig
                    };                 // schadet aber auch nicht
                    if(count == 0)
                    {
                        //neuerstring += alterstring[a]; // so gehts nicht
                        int nl = strlen(neuerstring);
                        neuerstring[nl] = alterstring[a];
                        neuerstring[nl+1]=0;
                        cout << alterstring[a] << " " << strlen(neuerstring) << " " << neuerstring << "\n";
                    };
                    count = 0;
                };
            };
        };
      system("PAUSE");
      return 0;
    }
    

    Kurt



  • hey super danke!!

    ich finds ja cool, dass mein code garnicht mal sooo falsch war...

    1000 dank jedenfalls 🙂


Anmelden zum Antworten