2015-10-24 74 views
-2

如果我有兩個數組,一個已經在代碼中,另一個是由用戶輸入的,我如何檢查用戶輸入的數據是否在其他預定義數組?比較char數組來檢查輸入是否相同

char array1[] = {abcdefghijklmn}; 
char array2[3]; 

printf("enter 3 letters: "); 

for (int i = 0; a < 3; i++) { 
scanf(" %c"; &array2[i]); 
} 

for (int a = 0; i < 14; a++) { 
    for (int b = 0; b < 3; b++) { 
    if (array1 [a] == array2 [b]) 
     printf("located at %d ", array1[a]); 
    } 
} 

我覺得我的發言只有每個元素而不是整個單詞進行比較,如果用戶鍵入ABC,我該如何解決這個問題在我的for循環/ if語句?

+0

'char * found = strstr(array1,array2);'如果你終止了你的字符串。 – mch

+1

'if(array1 [a] = array2 [a])<---請注意,當您使用'=='時,您正在使用'='。另外,你並沒有在'for'主體中使用'b' – bznein

+1

@Jbox請不要在迴應評論時糾正問題中的錯誤。這使得話題難以遵循。 –

回答

0

事情是這樣的:

for (int b = 0; b < 14; b++) 
{ 
    i=0; 
    while(array2 [i] == array1 [b] && b<14 && i<4) 
    { 
      ++i; 
      ++b; 
    } 
    if(i==3) 
    { 
     printf("\nlocated at %d ",b-3); 
     break;//for single occurence 
    } 
} 

編輯:爲了計算一個字的多次出現只是刪除,如果條件內break聲明。

+0

我== 4應該做什麼? – Jbox

+0

檢查編輯它的'i == 3',這是由用戶輸入的字符數組的大小。如果array2的連續字符與array1的連續字符相同,則**字符**出現在數組中。 – wrangler

+0

我想我得到了它的工作,如果單詞在數組中發生多次,找到所有的位置,我只是改變while(i == 3)? – Jbox

相關問題