Ich kann nicht, warum das folgende Bit von C-Code funktioniert nicht:Problem strchr
int obtainStringLength(char* str, char c1, char c2) {
char* firstOcurrence = strchr(str, c1);
char* endOcurrence = strchr(str, c2);
return 2+(endOcurrence - firstOcurrence)/sizeof(char*);
}
Die Idee, wie viele Zeichen zwischen c1
sind zu finden ist und c2
:
printf("%d\n", obtainStringLength("abc def ghi", 'a', 'i')); //should yield 11
Leider druckt das immer 1. Was ist das Problem? Sollte nicht strchr
funktionieren wie C# string.IndexOf()
?
Sie haben einen sehr seltsamen Compiler :) 'immer Drucken 1' ???? – pmg