Buchstabensalat bei char Array



  • Hi, ich versuche ein char-Array zu verändern (zu verschlüsseln 😃 ). Ich zähle dabei zu jeden char 5 dazu, um somit seine Buchstaben zu verändern.
    Wenn ich jetzt aber mit einer for-Schleife einen anderen char-Array den alten zuordne kommt ein Buchstabensalat heraus 😡

    char alt[5] = "name";
    	char neu[5];
    
    	for(int i = 0; i <= 4; i++)
    	{
    		alt[i] += 5; 
    		neu[i] = alt[i];
    	}
    
    	cout << neu;
    
    	getch();
        return 0;
    }
    

    es sollte: sfrj
    herauskommen.
    Es kommt schon am Anfang vor, aber danach kommt lauter wirres Zeug 😡
    Bitte um Hilfe!

    Danke



  • EDIT: Problem gelöst

    char alt[5] = "name";
    	char neu[5];
    
    	for(int i = 0; i < 4; i++)
    	{
    		alt[i] += 5;
    		neu[i] = alt[i];
    	}
    	neu[4] = '\0';
    
    	cout << neu;
    


  • char alt[5] = "name";
    	char neu[5] = {0}; // zu Beginn schon mit Werten belegen
    
    	for(int i = 0; i < 4; i++)
    	{
    		alt[i] += 5;
    		neu[i] = alt[i];
    	}
    
    	cout << neu;
    


  • Ja, ja.. die liebe Null Terminierung. :p

    btw:
    Warum machst du das nicht einfach so:

    char alt[5] = "name";
        char neu[5];
    
        for(int i = 0; i < 4; i++)
        {
            neu[i] = alt[i]+5;
        }
        neu[4] = '\0';
    
        cout << neu;
    

    Ansonsten kannst du dir das neu/alt sparen und gleich einfach das Array manipulieren.


Anmelden zum Antworten