0
#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 个变量

4

3 回答 3

4

使用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;
}
于 2011-12-19T13:52:03.330 回答
2

strchr 的第二个参数是一个字符,表示为一个 int。它将在字符串中找到该字符的第一个实例。

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

如果要在字符串中查找子字符串,请使用 strstr,

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

strstr 将指向第一个子字符串,如果未找到,则为 NULL。

于 2011-12-19T13:54:31.320 回答
1

strchr习惯于Locate first occurrence of character in stringstrstr用于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;
}
于 2011-12-19T13:55:20.013 回答