Нужно знать о функции c ++ strchr и как она работает - PullRequest
0 голосов
/ 07 февраля 2012

Я хочу знать о strchr функции в C ++.

Например:

realm=strchr(name,'@');

Что означает эта строка?

Ответы [ 3 ]

3 голосов
/ 07 февраля 2012

С здесь .

Возвращает указатель на первое вхождение символа в строку C строки.

Завершающий нулевой символ считается частью строки 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
2 голосов
/ 07 февраля 2012

www.cplusplus.com - это очень удобный сайт для помощи C ++.Например, для объяснения функций.

Для strchr :

Найти первое вхождение символа в строке Возвращает указатель на первое вхождение символа в строке C строки str..

Завершающий нулевой символ считается частью строки C.Следовательно, он также может быть расположен для извлечения указателя на конец строки.

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

//realm will point to "@hello.com"
0 голосов
/ 14 сентября 2017

Только для тех, кто ищет здесь исходный код / ​​реализацию:

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

(происхождение: http://clc -wiki.net / wiki / strchr )

...