01/10/2018, 16:06
Cấu trúc struct c++
chào anh chị em mới học c++ anh chị cho em hỏi làm thế nào mà mình có thể chọn sinh viên ra và sau khi chọn nếu tên sinh viên bị trùng thì yêu cầu người sử dụng nhập mã số sinh viên vậy ạ?
void Search(struct Student &s, struct Student a[])
{
int flag = 0;
char k[50];
char e[50];
int i, j;
Student found;
cout << "Input the name you want to get: ";
fflush(stdin);
cin.get(k, 256);
for (i = 0; i < n; i++)
{
if (strlen(k) == strlen(a[i].Name))
{
cout << "student is found at " << i + 1 << " " << "Student id: " << a[i].id << " " << "Grade: " << a[i].grade << endl;
cout << "==================================" << endl;
}
}
for (i = 0; i < n;i++)
{
for (j = i; j < n; j++)
{
while (a[i].Name == a[j].Name)
{
fflush(stdin);
cout << "Please Enter Id: ";
cin >> e;
if (strcmp(e, a[i].id) == 0)
{
cout << "student is found at " << i + 1 << " " << "Student name: " << a[i].Name << " " << "Grade: " << a[i].grade << endl;
}
break;
}
}
break;
}
}
Bài liên quan
Ngay từ đầu bạn đã sai chỗ so tên rồi.
Mình làm thì khi tìm họ tên thì sẽ hiện hết những mã cùng họ tên và yêu cầu người dùng chọn.
bạn có thể giải thích rõ hơn dược không ạ?
C++ không cho phép so sánh chuỗi dùng toán tử
==
. Phải dùng các hàm trong thư viện,hay tự viết hàm (ví dụ hàmstrcmp
), bạn tìm hiểu thêm trên google nhé.Đó là string của C.
std::string
thì so==
được nhưng phải khớp case mới bằng nhau, vàstrcmp
cũng phải khớp case.