#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
typedef struct SinhVien
{
char HoTen[30];
int Tuoi;
char Lop[10];
char *strTemp;
}Sv;
Sv sinhvien[MAX];
int n;
void Nhap()
{
int i;
printf("nhap so sinh vien: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\nNhap ho ten sinh vien thu %d: ",i+1);
fflush(stdin);
gets(sinhvien[i].HoTen);
printf("\nNhap so tuoi: ");
scanf("%d",&sinhvien[i].Tuoi);
printf("\nHoc lop: ");
fflush(stdin);
gets(sinhvien[i].Lop);
}
}
void Hienthi()
{ int i;
system("cls");
printf("\t\t\tDanh sach sinh vien\n");
printf("%20s%20s%10s\n","Ho Ten","Tuoi","Lop");
for(i=0;i<n;i++)
{
printf("%20s%20d%10s\n",sinhvien[i].HoTen,sinhvien[i].Tuoi,sinhvien[i].Lop);
}getch();
}
int timten(char *Hovaten,char *Ten)
{
int lenhoten;
int lenten;
int i,j=0;
int minlen;
char *strTemp;
int lenTemp=0;
int giatri=1;
lenhoten=strlen(Hovaten);
lenten=strlen(Ten);
minlen=lenhoten<=lenten?lenhoten:lenten;
for(i=0;i<lenhoten;i++)
{
if((Hovaten[i]>='a')&&(Hovaten[i]>='z'))
Hovaten[i]=Hovaten[i]-32;
}
for(i=0;i<lenten;i++)
{
if((Ten[i]>='a')&&(Ten[i]>='z'))
Ten[i]=Ten[i]-32;
}
for(i=Hovaten-1;i>=0;i--)
{
if(Hovaten[i]==' ')
break;
lenTemp++;
}
j = lenTemp - 1;
if (minlen != lenTemp) {
giatri = 0;
return giatri;
strTemp = (char*)malloc(sizeof(char) * (lenTemp+ 1));
for (i =Hovaten - 1; i >= 0; i--)
{
if (Hovaten[i] == ' ')
break;
strTemp[j] = Hovaten[i];
j--;
}
strTemp[lenTemp] = '\0';
for (j = 0; j < lenTemp; j++)
{
if (strTemp[j] != Ten[j])
{
giatri = 0;
break;
}
}
free(strTemp);
return giatri;
}
}
void timkiemsv() {
char Ten[20];
Sv Svien;
int cosv;
cosv = 0;
printf("Nhap ten sinh vien can tim: ");
fflush(stdin);
gets(Ten);
printf("-------HO TEN--------|----TUOI-----|---------LOP---------|\n");
while (1)
{
if (timten(Svien.HoTen,Ten) == 1)
{
cosv = 1;
printf("%20s |%12d |%20s |\n", Svien.HoTen, Svien.Tuoi, Svien.Lop);
}
}
if (cosv == 0)
printf("Khong co sinh vien nao!\n");
}
void menu()
{
int luachon;
while(1)
{
system("cls");
printf("Chon lua chuc nang\n");
printf("1. Chon 1 de Nhap danh sach sinh vien\n");
printf("2. Chon 2 de Hien thi danh sach sinh vien\n");
printf("3. Chon 4 de tim kiem sinh vien theo ten\n");
printf("4. Chon 3 de Ket thuc\n");
scanf("%d",&luachon);
switch(luachon)
{
case 1:
Nhap(); break;
case 2:
Hienthi(); break;
case 3:
exit(1);break;
case 4:
timkiemsv(); break;
}
}
}
int main()
{
menu();
return 0;
}
Code tìm kiếm tên không biết sai ở đâu
Hình như chương trình này của bạn bị giới hạn không được dùng các hàm thao tác xâu như strcpy, strcmp,... ah?
vâng bạn ạ 
vâng bạn ạ
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?