gpt4 book ai didi

C函数strchr - 如何计算字符的位置?

转载 作者:行者123 更新时间:2023-12-02 07:05:19 25 4
gpt4 key购买 nike

我有这个用 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”的指针有关,但这是如何工作的?

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

谢谢,艾尔乔布索

最佳答案

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

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

关于C函数strchr - 如何计算字符的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com