一组姓名,我要查找其中的一个,除了用比较字符串的方式查找,还能用什么方式查找?C语言或C++

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等。我要查找其中一个人的姓名,该用别的什么查找方法?给出代码最好

姓名本身是结构体变量中的一个字符串,只能用字符串比较的方式才能确定是否匹配啊。这就象整数的比较、小数的比较,是由数据类型本身决定的。追问

那查找方式呢??真的就这一种??可是问题是::
输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

追答

这题目的要求,不是说字符串本身的查找方法。而是将这若干个学生的信息做成一个数组或者链表,然后对这个数组中学生元素的查找方法。这个查找的方法就比较多了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-30
正则表达式
相似回答