All pastes #805587 Raw Edit

zeuchs

public c v1 · immutable
·published 2007-12-04 14:20 UTC
rendered paste body
/* Umkehren eines char Array's */#include <stdio.h>#include <stdlib.h>#include <string.h>void charReverse(char array[]) {     /* Zuweisen der Pointer(links,rechts)      * Anlegen eines char's temp      */     char *p_left = array,           *p_right = &array[strlen(array)-1],          temp;               /* Schleifendruchlauf solange die Adressen           * gleich sind!            * Zuerst wird der char vom Linken Pointer, quasi der erste Buchstabe           * zwischengespeichert! Danach wird der letzte char von p_right           * auf p_left gelegt und p_right mit temp belegt usw.           * Danach noch p_left inkrementiert und p_right dekrementiert!           */          while(p_left != p_right)           {          temp = *p_left;          *p_left = *p_right;          *p_right = temp;                    p_left++;           p_right--;          }} void charReverse_rekursiv(char array[], char* left, char* right) {     /* Ausstiegspunkt für die Rekursion */     if(left == right)              {             return;             }     /* Selbe Operation wie in der iterativen       * Verion      */     char temp;     temp = *left;     *left = *right;     *right = temp;     /* Pre in- dekrement erforderlich sonst endlosschleife */     charReverse_rekursiv(array,++left,--right);    }int main() {    char value[] = "Hello World :-)";    char *left = value,         *right = &value[strlen(value)-1];             charReverse_rekursiv(value,left,right);    printf("%s\n",value);    charReverse(value);    printf("%s\n",value);    system("pause");    return 0;}