如果我有一个包含*的C字符串,我想在此字符串中找到3颗星的位置。除了通过循环并通过char检查char之外,最好/更有效的方法是什么?
由于
答案 0 :(得分:1)
您可能希望使用strchr
进行搜索。由于你想要角色的第三个实例,你仍然会在循环中执行它。
这实际上是否比你自己编写一个循环更有效可能会有一些问题,但它可能不会更慢,并且任何读取代码的人都会更清楚。
答案 1 :(得分:1)
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
}