在C字符串中查找位置

时间:2012-11-14 18:10:00

标签: c string search

如果我有一个包含*的C字符串,我想在此字符串中找到3颗星的位置。除了通过循环并通过char检查char之外,最好/更有效的方法是什么?

由于

2 个答案:

答案 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
}