Найти массив символов в другом массиве символов в c

#include <iostream>
using namespace std;
int main ()
{
    char name[10];
    cin>>name;
    char str[] = "Thomas";
    char * pch;
    pch=strchr(name,str);
    if (pch!=NULL) {
        cout<<"Foud"<<endl;
    }

    return 0;
}

Здравствуйте, почему я не могу использовать 2 переменные в функции strchr, если вы знаете, как искать слова в строке

3 ответа

Решение

Используйте strstr

#include <iostream>
using namespace std;
int main ()
{
    char name[10];
    cin>>name;
    char str[] = "Thomas";
    char * pch;
    pch=strstr(name,str);
    if (pch!=NULL) {
        cout<<"Found"<<endl;
    }

    return 0;
}

Второй аргумент strchr - это символ, выраженный как int. Он найдет первый экземпляр этого символа в строке.

char *strchr(const char *s, int c);

Если вы хотите найти подстроку в строке, используйте strstr,

char *strstr(const char *haystack, const char *needle);

strstr будет указывать на первую подстроку или NULL, если она не найдена.

strchr используется для Locate first occurrence of character in string, strstr используется для Locate substring, Смотрите ссылки:

Итак, ваша программа должна выглядеть так:

#include <iostream>

using namespace std;

int main ()
{
    char name[10];
    cin>>name;
    char str[] = "Thomas";
    char *pch = strstr(name,str);
    if (pch != NULL) {
        cout<<"Found"<<endl;
    }

    return 0;
}
Другие вопросы по тегам