Zeichen vertauschen mit Arrays



  • Hallo,

    ich bin neu und hab direkt diese Frage:

    Mein Programm soll Die Buchstaben in den einzelnen Wörtern aus der Code-Zeile

    strcpy(cArray,"Alle meine Entchen schwimmen");

    vertauschen, so dass Diese von vorne nach hinten gelesen werden. Allerdings komme ich nicht auf die Lösung. BITTE helft mir.

    [cpp]
    #include <windows.h>
    #include <stdio.h>
    
    int main(int argc, _TCHAR* argv[])
    {
    	char cArray[1024];
    	char cTemp;
    	int lastIndex=0;
    	int i;
    
    	strcpy(cArray,"Alle meine Entchen schwimmen");
    
    		while (cArray[lastIndex]!=32)
    		{
    			lastIndex++;
    		}
    
    		lastIndex = lastIndex-1;
    
    		for (i=0;lastIndex > i;)
    		{
    			cTemp = cArray[lastIndex];
    			cArray[lastIndex] = cArray[i];
    			cArray[i] = cTemp;
    			lastIndex--;	
    			i++;
    		}
    
    	printf(cArray);
    	getchar();
    	return 0;
    }
    [/cpp]
    

    Vielen Dank im voraus!

    der Ole



  • 1. Die Endekennung ist nicht 32 sondern '\0' oder 0
    2. Wenn du das erste mit dem letzten Zeichen tauscht und danach das letzte mit dem ersten, kommt wieder das Ursprüngliche bei raus.
    3. printf erwartet als erstes Argument einen Formatstring. Daher:

    printf("%s", cArray);
    // oder
    puts(cArray);
    


  • Okay danke! Das mit der 0 anstelle von 32 habe ich mir fast schon gedacht, ausprobiert habe ich es sogar auch schon. Klappt leider immer noch nicht. Den Rest verstehe ich leider irgendwie nicht.

    Freundliche Grüße!

    der Ole


  • Mod

    Schneide dir ein paar Buchstaben aus Papier aus, schreib dir auf einem weiteren Blatt die Werte der Variablen auf und und vollzieh daran nach, was dein Programm macht. Hör nicht auf, wenn das Ergebnis zu stimmen scheint, sondern mach genau das, was dein Programm macht. Dann siehst du auch, warum das Ergebnis hinterher nicht mehr stimmt und was man dagegen tun könnte.



  • Danke, eine einprägsame Methode.


Log in to reply