我有一个包含两个名字的结构,但它们是字符形式 - 所以是一个数组 炭[2] [10] 它应该是两个最多十个字符的名字。 我想搜索它们。
while (ans3==1)
{
cout << "\nPlease enter the name you want to search"
<<endl;
cin >> searchName;
for (int i=0; i < size; i++)
{
cout <<"\nsearching " <<endl;
for (int k=0; k< 10; k++ )
if ( MyData.name[i][k]==searchName[k])
{
cout << "\nName was found at position "<< k <<endl;
}
else
cout << "\nName not found at position " <<k <<endl;
}
cout << "\nDo you want to search for a name? (1 for y, 2 for n)" <<endl;
cin >> ans3;
}
这可以编译,但不能完成我想要它做的事情。有人可以帮助。谢谢。
答案 0 :(得分:0)
您当前的结构假定名称从数组的索引0开始。 我建议检查名称数组中的每个字符对着搜索名称的第一个字符,直到您点击名称数组的末尾或找到匹配项。如果找到匹配项,则检查名称数组中的剩余字符与搜索到的字符串中的下一个字符。 因为现在你所检查的是两个字符串都以相同的字母开头。 将名称hold的起始位置返回到第一个匹配的索引。 如果我的建议完全没有找到你想要的东西,你也可以使用strcomp()。