我正在编写一个带有命令行界面的小程序。在这个程序中,我希望有一个我设法创建的搜索功能。
但它用于搜索名字的字符,但我想创建相同的功能,可以使用“学生注册号”进行搜索。
我遇到问题的搜索案例:
int kWord;
stdDetails stdFind;
cout<<"Enter the Student Registration Number of the Student: ";
cin>>kWord;
for(int x=0;x<i;x++){
stdFind = stdDetailsStructs_0[x];
if(!strcmp(kWord,stdFind.stdNum)){
search=1;
break;
}
}
if(search==1){
display(stdFind);
}else{
cout<<"Student details not found please try again."<<endl;
}
答案 0 :(得分:1)
我认为千度不应该是int
,因为学生注册号应该是字符串。如果它们是数字,则应使用==
来检查相等性。
search
在哪里宣布?
如果它是全球性的,你应该
if(search==1){
display(stdFind);
}else{
cout<<"Student details not found please try again."<<endl;
search = 0; // <-- add this
}
答案 1 :(得分:1)
stdNum在结构stdDetails中的类型为int.So使用==
的{{1}}运算符
strcmp()
答案 2 :(得分:0)
如果它只是一个数字,为什么你不能使用==
运算符而不是strcmp。
答案 3 :(得分:0)
使用--- if(kWord == stdFind.stdNum),,,, strcmp()用于字符串比较。 kWord和stdNum是整数值。
答案 4 :(得分:0)
我会使用strncmp()(即使它真的是C风格,你可以使用STL),因为它总是会失败,因为行末有'\ n'。
如果stdNum实际上是一个字符串:
if(!strncmp(kWord,stdFind.stdNum, strlen(stdFind.stdNum))){