Я не могу понять, почему следующий бит кода C не работает:
int obtainStringLength(char* str, char c1, char c2) {
char* firstOcurrence = strchr(str, c1);
char* endOcurrence = strchr(str, c2);
return 2+(endOcurrence - firstOcurrence) / sizeof(char*);
}
Идея состоит в том, чтобы найти, сколько символов находится между c1
и c2
:
printf("%d\n", obtainStringLength("abc def ghi", 'a', 'i')); //should yield 11
К сожалению, это всегда печать 1. В чем проблема?Разве strchr
не должен работать как C # string.IndexOf()
?