次の 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()
か?