如果我有一个包含 * 的 C 字符串,并且我想在这个字符串中找到 3 星的位置。除了通过循环和逐字符检查之外,最好/更有效的方法是什么?
谢谢
您可能想使用strchr
. 由于您想要角色的第三个实例,因此您仍将在循环中执行它。
这是否真的会比自己编写循环更有效可能会有一些问题,但它可能不会更慢,并且任何阅读代码的人都会更清楚意图。
C字符串实际上是字符数组,所以如果你想找到任何字符的位置,那么你必须遍历整个数组并返回特定的位置char
。但是数组的索引从位置开始0
。
找到一个角色位置
int str_chr_pos(const char *s,char c)
{
for(i=0;s[i]!='\0';i++)
if(c == s[i])
return i; // found at position i
return -1; //-1 means not found and check the returned value in the calling environment
}