Lỗi: [Warning] passing argument 2 of 'strcmp' makes pointer from integer without a cast

Mình có đoạn code như sau, đề bài là nhập vào 1 chuỗi xem chuỗi đó có ở trong 1 phần tử nào của chuỗi đã cho không. Và nó hiện lỗi là: [Warning] passing argument 2 of ‘strcmp’ makes pointer from integer without a cast.
Không biết làm thế nào để sửa ạ, mình xin cảm ơn!

#include <stdio.h>
#include <string.h>
#define maxElements 1000
#define maxLength 30

int main() {
   char s1[maxElements][maxLength] = {"Le Phong", "Cao Minh Quang", "Tran Thi Hong Anh"};
   char s2[] = "Thi";
 
   int n = 0;
   int m = 0;
   int times = 0;
   
   int len = strlen(s2);
 
   while(s1[n] != '\0') {
 
      if(strcmp(s1[n], s2[m])==0) {   
 
         
         while(strcmp(s1[n], s2[m])==0  && strcmp(s1[n], "\0") !=0) {
            n++;
            m++;
         }
 
        
         if(m == len && (strcmp(s1[n], " ") == 0) || strcmp(s1[n], "\0") !=0) {
            times++;
         }
      } else {  
         while(strcmp(s1[n], " ") == 0) {    
            n++;
            if(strcmp(s1[n], "\0") == 0)
            break;
         }
      }
         
      n++;
      m=0;  
   }
 
   if(times > 0) {
      printf("Chuoi '%s' xuat hien %d lan\n", s2, times);
   }else {
      printf("Chuoi '%s' khong xuat hien trong cau.\n", s2);
   }
 
   return 0;
}

s1[n] đúng là một chuỗi
nhưng s2[m] lại là một kí tự :smiley:

Mà tìm chuỗi trong chuỗi thì không dùng strcmp đâu.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?