在c中的另一个字符数组中查找一个字符数组

find a char array in another char array in c

本文关键字:字符 数组 一个 查找 另一个      更新时间:2023-10-16
#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;
}

你好,为什么我不能在strchr函数中使用2个变量,如果你知道如何在字符串

中搜索单词

使用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 stringstrstr代替Locate substring。参见参考文献:

  • strchr
  • strstr
所以,你的程序应该是这样的:
#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;
}