【发布时间】:2021-03-28 07:55:24
【问题描述】:
在这段代码中
strcpy(s, "bacalaureat");
i = strchr(s, 'a') - s; // i = 1
i的值是1。为什么会这样,上面-s的作用是什么?
【问题讨论】:
-
strchr返回一个指向找到位置的指针,因此从中减去字符串开头的指针,就可以得到找到位置的索引。事实上,bacalaureat中的第一个a位于位置 1。(b位于位置 0)。 -
基本上就是
std::find(s.begin(), s.end(), 'a'); -
在 SO 上使用标签“指针算术”。
标签: c++ c string character pointer-arithmetic