我不明白为什么以下 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()
吗?