void findstudent() /*输入一个学生姓名,查找到此学生的信息并输出结果*/{ char NAME[30]; int flag=0; FILE *fp; fp=fopen("c:\\3.txt","r"); /*以读的方式打开3.txt*/ cin>>NAME; while(fscanf(fp,"%s%d%d%d%d%d",stud[1].name,&stud[1].id,&stud[1].chinese,&stud[1].math,&stud[1].english,&stud[1].sum )!=EOF) { if(strcmp(stud[1].name,NAME)==0) /*比较字符串,如果输入的姓名达到要求*/ { /*输出显示其相对应的信息*/ flag=1; cout<<"-------姓名-------学号-------语文-------数学-------英语-------总分--------"<<endl; cout<<" "<<stud[1].name<<" "<<stud[1].id<<" "; cout<<stud[1].chinese<<" "<<stud[1].math<<" "<<stud[1].english<<" "<<stud[1].sum<<endl; break; } } if(flag==0) cout<<"无此学生相关信息"<<endl; /*如无法找到,则显示"无此学生相关信息"*/ fclose(fp); /*关闭文件3.txt*/}
这个是比较字符串的算法,保存在3中的数据是
张明明 01 67 78 82李成友 02 78 91 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 67 38 47等。我要查找其中一个人的姓名,该用别的什么查找方法?给出代码最好
那查找方式呢??真的就这一种??可是问题是::
输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)
这题目的要求,不是说字符串本身的查找方法。而是将这若干个学生的信息做成一个数组或者链表,然后对这个数组中学生元素的查找方法。这个查找的方法就比较多了。