2014-12-05 73 views
-6

如何修复此搜索方法?这部分是一个switch语句,要求用户搜索客户端ID。如何解决此搜索方法?

case 2: printf("Enter the client ID to search for: "); 
        scanf("%d", searchID); 
        searchClient(searchID, pcli, clCount); 
        foundAt = searchClient(searchID, pcli, clCount); 
        if(foundAt >= 0) 
         printf("%d is found at position %d in the array", searchID, foundAt); 
        else 
         printf("%d is not found anywhere", searchID); 
       break; 

这是搜索方法本身被称为情况2

int searchClient(char* searchID, client* pcli, int clCount) 
{ 
    int i = 0; 
    for(i = 0; i < clCount; i++) 
    { 
     if(strcmp(searchID,(pcli + i)->clID)==0) 
     { 
      return i; 
     } 
    } 
    return -1; 
}//end searchClient 
+0

需要解决的问题? – 2014-12-05 08:59:03

+0

什么是'searchID'?你*确实知道'scanf'的参数需要指针,对吗? – 2014-12-05 08:59:55

+1

@JoachimPileborg:它是一个令人惊讶的:'char * searchID'。哎哟。 – Zeta 2014-12-05 09:01:26

回答

1

搜索功能想要一个字符串,但你给它一个整数, perhps改变这样的输入对话:

printf("Enter the client ID to search for: "); 
{ 
    char mybuffer[100]; 
    scanf("%99s", mybuffer); 
    foundAt = searchClient(mybuffer, pcli, clCount); 
}