2013-04-13 157 views
1

比方說,我有兩個字符數組c char字符數組進行比較

char names[] = { "Jen" , "Will" , "Smith" } ; 
char names2[] = {"Sam" , "Will" , "Dave"}; 

,我要檢查,如果兩個數組有一個共同的元素在一個共同的指數 例如這兩個名字[]和names2 []有「將」在位置1(從零開始)字

我想用這種方式

for(i = 0; i< 3; i++) 
{ 
    if(strcmp(names[i],names2[i]) == 0) 
    printf("Same"); 
} 

做,但我得到這個錯誤「發現字符的字符串,其中預計」任何想法?

+1

好了,你有太多的括號內。你在戴夫之後錯過了一個引號。如果你跑到SO來處理代碼中每一個微不足道的語法錯誤,那麼你不會走得太遠......編譯器可能指出的錯誤。 –

+1

你忘了''Dave''的結束語。 – Kninnug

+0

@JimBalter是啊,我在這裏太快寫的代碼,在我的代碼它的確定,我仍然得到錯誤 – dotnetter

回答

1

通常位於C我們定義字符串爲char名】,如果u創建字符串數組意味着ü[R聲明應該是char名[] []

2

char []char陣列,即一個串;你想要的是指向字符串常量數組,所以它應該是:

const char * names[] = { "Jen" , "Will" , "Smith" } ; 
const char * names2[] = {"Sam" , "Will" , "Dave"}; 

那麼strcmp代碼應該編譯罰款。

注意的是,如果不是,你有沒有和用戶提供的字符串(不只是字符串)中工作,你就必須要麼訴諸char * []和動態內存分配,無論是大的二維字符數組(char names [STRNUM][STRMAXLENGHT]) 。