Wort verdrehen?
-
Code::Blocks
GNU/C
-
Ja, C ist da nicht so empfindlich, ich habe in meinen Beispielen auch strlen benutzt, ohne string.h einzubinden.
Wenn C auf eine Funktion trifft, die nicht deklariert ist, geht es davon aus, daß die Parameterliste schon stimmen wird, und dass der Rückgabewert int ist.
Ein C++ - Compiler kompiliert mein Beispiel nicht, wenn #include <string.h> nicht drin steht.
Man könnte genauso gut printf benutzen, ohne stdio.h zu inkludieren, in C, C++ toleriert das nicht.
-
Hab ich nich...kenn ich nich...
Wenn es so wäre, dann wäre es in "stdlib.h" definiert, weil man denkt, daß "strlen()" zu den Standardfunktionen gehört (was ich auch persönlich finde
) "strrv" dürfte aber nicht definiert sein...?
-
Belli schrieb:
Ja, C ist da nicht so empfindlich, ich habe in meinen Beispielen auch strlen benutzt, ohne string.h einzubinden.
Wenn C auf eine Funktion trifft, die nicht deklariert ist, geht es davon aus, daß die Parameterliste schon stimmen wird, und dass der Rückgabewert int ist.
Ein C++ - Compiler kompiliert mein Beispiel nicht, wenn #include <string.h> nicht drin steht.
Man könnte genauso gut printf benutzen, ohne stdio.h zu inkludieren, in C, C++ toleriert das nicht.Achso...
-
#include <stdio.h> int stringLen(const char *s); void stringRev(char *s); void charSwap(char *a, char *b); int main() { char s[] = "abcde"; printf("In: %s\n", s); stringRev(s); printf("Out: %s\n", s); return 0; } int stringLen(const char *s) { const char *ptr = s; for (ptr = s; *ptr; ++ptr); return ptr - s - 1; } void stringRev(char *s) { const int len = stringLen(s); int i; for (i = 0; i <= len / 2; ++i) charSwap(&s[i], &s[len - i]); } void charSwap(char *a, char *b) { const char tmp = *a; *a = *b; *b = tmp; }