如何在这个C ++程序中创建搜索功能

时间:2013-05-28 07:36:04

标签: c++ c

我正在编写一个带有命令行界面的小程序。在这个程序中,我希望有一个我设法创建的搜索功能。

但它用于搜索名字的字符,但我想创建相同的功能,可以使用“学生注册号”进行搜索。

我遇到问题的搜索案例:

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;
}

5 个答案:

答案 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))){