diff --git a/07_zeiger_const/stringtausch.c b/07_zeiger_const/stringtausch.c index 61c4b6b..9d14e8f 100644 --- a/07_zeiger_const/stringtausch.c +++ b/07_zeiger_const/stringtausch.c @@ -14,7 +14,9 @@ #define MAX_STRING_LEN 8 -void tauscheStrings(char *zgr1, char *zgr2); +void tauscheStringsFalsch(char *zgr1, char *zgr2); +void tauscheStringsInhalt(char *zgr1, char *zgr2); +void tauscheStringsZgr(char **zgr1, char **zgr2); int main() { @@ -28,7 +30,9 @@ int main() printf("Inhalt von strings[0]: %s\n", strings[0]); printf("Inhalt von strings[1]: %s\n", strings[1]); - tauscheStrings(string1, string2); + //tauscheStringsFalsch(string1, string2); + //tauscheStringsInhalt(string1, string2); + tauscheStringsZgr(&string1, &string2); printf("\nNach Tausch:\n"); printf("Inhalt von string1: %s\n", string1); @@ -39,9 +43,24 @@ int main() return EXIT_SUCCESS; } -void tauscheStrings(char *zgr1, char *zgr2) +void tauscheStringsFalsch(char *zgr1, char *zgr2) { char *tmp = zgr1; zgr1 = zgr2; zgr2 = tmp; +} + +void tauscheStringsInhalt(char *zgr1, char *zgr2) +{ + char tmp[MAX_STRING_LEN]; + strncpy(tmp, zgr1, MAX_STRING_LEN); + strncpy(zgr1, zgr2, MAX_STRING_LEN); + strncpy(zgr2, tmp, MAX_STRING_LEN); +} + +void tauscheStringsZgr(char **zgr1, char **zgr2) +{ + char *tmp = *zgr1; + *zgr1 = *zgr2; + *zgr2 = tmp; } \ No newline at end of file