0

我想了解strchrC++ 中的函数。

例如:

realm=strchr(name,'@');

这条线的意义是什么?

4

3 回答 3

3

这里

返回指向 C 字符串 str 中第一次出现的字符的指针。

终止的空字符被认为是 C 字符串的一部分。因此,也可以定位它来检索指向字符串结尾的指针。

/* 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;
}

会产生输出

Looking for the 's' character in "This is a sample string"...
found at 4
found at 7
found at 11
found at 18
于 2012-02-07T10:53:30.180 回答
2

www.cplusplus.com是一个非常有用的 C++ 帮助站点。比如解释功能。

对于strchr

定位字符串中第一次出现的字符 返回指向 C 字符串 str 中第一次出现的字符的指针。

终止的空字符被认为是 C 字符串的一部分。因此,也可以定位它来检索指向字符串结尾的指针。

char* name = "hi@hello.com";
char* realm = strchr(name,'@');

//realm will point to "@hello.com"
于 2012-02-07T10:53:38.050 回答
0

仅适用于那些在这里寻找源代码/实现的人:

char *strchr(const char *s, int c)
{
    while (*s != (char)c)
        if (!*s++)
            return 0;
    return (char *)s;
}

(来源:http ://clc-wiki.net/wiki/strchr )

于 2017-09-13T22:06:47.720 回答