【发布时间】:2014-08-19 02:15:33
【问题描述】:
好的,所以这周在课堂上我们正在使用数组。我有一个任务要我为一个包含员工 ID、名字、姓氏和工资的员工创建一个结构。然后它让我要求用户输入 5 个不同员工的输入,这些员工都存储在这个结构的数组中,然后要求他们输入搜索字段类型,然后是搜索值。最后,显示所有积极搜索结果的所有信息。
我还是新手,所以我确信它不是一个非常优雅的程序,但我现在要做的是弄清楚如何将用户输入的字符串与存储在结构中的字符串进行比较。 ..我将尝试在下面给出所有相关代码。
struct employee { int empid, string firstname, string lastname, float wage };
employee emparray[] = {};
employee value[] = {};
//Code for populating emparray and structure, then determine search field etc.
cout << "Enter a search value: ";
cin >> value.lastname;
for(i = 0; i < 5; i++) {
if(strcmp(value.lastname.c_str, emparray[i].lastname.c_str) == 0) {
output();
}
}
哪个...我认为可行,但它给了我以下错误..
Error 1 error C3867: 'std::basic_string<_Elem,_Traits,_Alloc>::c_str': function call missing argument list; use '&std::basic_string<_Elem,_Traits,_Alloc>::c_str' to create a pointer to member d:\myfile
有什么想法吗?有没有办法在不完全修改程序的情况下比较两个 .name 标记的字符串?如果您想向我介绍最佳实践,请随意,但也请尝试解决我的特定问题。
【问题讨论】:
-
我解决了...我不知道如何动态使用点表示法(如在 emparray[i].variable 中),因此我将其拆分为单独的决策语句。姓氏只是我发布的示例 =)
标签: c++ string structure string-comparison c-strings