Sửa giúp code bị lỗi ở strcmp

Sửa lỗi giúp mình với ạ, mình không biết nó bị lỗi gì (chỗ strcmp)

#include <iostream>
#include <cstring>

using namespace std;

struct SV
{
    char hoten[30];
    char mssv[9];
    char lop[20];
};
void nhapsv(SV sv)
{
    cout<<"nhap ten sinh vien";
    gets(sv.hoten); cout << endl;
    cout<<"nhap mssv";
    cin>>sv.mssv; cin.ignore();
    cout<<"nhap lop";
    gets(sv.lop); cout << endl;
}
void nhapdssv(SV ds[], int &n)
{
    cin >> n; cin.ignore();
    for (int i=0; i < n; i++)
        nhapsv(ds[i]);
}

void xuatsv(const SV &sv)
{
    cout << sv.hoten <<sv.mssv<<sv.lop << endl;
}
void xuatdssv(SV ds[], int n)
{
    for(int i=0; i<n ;i++)
    {
            xuatsv(ds[i]);
    }
}
int timsv(SV ds[],int n, char hoten[] )
{
        for( int i=0; i< n; i++)
        {
            if(strcmp(const ds[i].hoten), hoten == 0) /**chổ bị lỗi**/
            {
                return 1;
            }
            return -1;
        }

}

int main()
{
    SV danhsach[100];
    int n,k;
    char ht[30];
    nhapdssv(danhsach, n);
    xuatdssv(danhsach, n);
    gets(ht);
    k = timsv(danhsach, n, ht);
    if(k>-1) xuatsv(danhsach[k]);
    else cout<< "Khong tim thay";
        return 0;
}
if(strcmp(ds[i].hoten, hoten) == 0)

Nhưng tốt nhất nên thiết kế lại cái này:

struct SV{
    string hoten;
    string mssv;
    string lop;
};

để đến chỗ if nó thành thế này :

if(ds[i].hoten == hoten)

Vì đây là C++ nên hãy viết theo kiểu C++ chứ không phải kiểu C.

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