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 の 2 番目の引数は、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 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;
}
于 2011-12-19T13:55:20.013 に答える