【问题标题】:C function strchr - How to calculate the position of the character?C函数strchr - 如何计算字符的位置?
【发布时间】:2012-10-31 19:58:19
【问题描述】:

我有这个 C 语言中 strchr 函数的示例代码。

/* strchr example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] = "This is a sample string";
  char * pch;
  printf ("Looking for the 's' character in \"%s\"...\n",str);
  pch=strchr(str,'s');
  while (pch!=NULL)
  {
    printf ("found at %d\n",pch-str+1);
    pch=strchr(pch+1,'s');
  }
  return 0;
}

问题是,我不明白,这个程序如何计算正在寻找的角色的位置。 我认为这与“pch”和“str”的指针有关,但是这是如何工作的呢?

如果有人可以更详细地解释这一点,那就太好了。

谢谢, 埃尔乔布斯

【问题讨论】:

  • 如何使用调试器一步一步走?
  • 谷歌指针算法

标签: c position character strchr


【解决方案1】:

它只是从指向找到结果的指针中减去str,它是指向字符串第一个字符的指针。

这就变成了字符的位置,从0开始索引。这很容易理解,如果在字符串的第一个位置找到字符,返回的指针将等于str,因此@987654323 @ 是真的。添加一个使其从 1 开始,这有时对于演示目的很有用。

【讨论】:

    猜你喜欢
    • 2014-06-10
    • 2017-08-06
    • 2018-06-12
    • 2021-03-02
    • 2021-01-30
    • 2013-11-02
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    相关资源
    最近更新 更多