/** * String umdrehen. * * Schreiben Sie eine Funktion `reverse`, der man einen String übergibt und * die diesen String dann umdreht. So wird z.B. aus dem String `abcd` der * String `dcba`. Die Funktion verändert den ihr übergebenen String direkt. * Der Aufrufer der Funktion muss dafür Sorge tragen, dass der übergebene * String schreibbar ist. */ #include #include #include void reverse(char* chars) { int len = strlen(chars); for (int i = 0; i < len / 2; i++) { char tmp = chars[i]; chars[i] = chars[len - i - 1]; chars[len -i - 1] = tmp; } } void test_reverse(const char* input, const char* expected) { char buffer[255]; strcpy(buffer, input); reverse(buffer); assert(strcmp(buffer, expected) == 0); } int main(int argc, char** argv) { test_reverse("hello world", "dlrow olleh"); test_reverse("helloworld", "dlrowolleh"); test_reverse("a", "a"); test_reverse("ab", "ba"); test_reverse("abc", "cba"); puts("OK"); return 0; }