2011-12-19 77 views
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個變量,如果你知道如何尋找的話在字符串找到另一個字符數組字符數組在C

+0

你有沒有考慮,也許你正在尋找在錯誤的工具的工作? –

+0

爲什麼這個標記C++時,它主要是使用C的方式做事?要麼使用'std :: string'或者刪除cout並使用C,但不要嘗試醜陋的混合 – PlasmaHH

回答

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

strchr的第二個參數是一個字符,用int表示。它會在字符串中找到該字符的第一個實例。

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

如果你想找到一個字符串使用一個的strstr子,

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

會的strstr指向第一個字符串或NULL,如果它沒有找到。

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; 
} 
相關問題