найти массив символов в другом массиве символов в c - PullRequest
0 голосов
/ 19 декабря 2011
#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 ]

3 голосов
/ 19 декабря 2011

Использование 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;
}
2 голосов
/ 19 декабря 2011

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

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

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

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

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

1 голос
/ 19 декабря 2011

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;
}
...