Найти массив символов в другом массиве символов в 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;
}