【发布时间】:2015-09-03 19:19:59
【问题描述】:
假设我有一个结构数组,每个元素都有一个名称。喜欢:
struct something{
char name[200];
}a[NMAX];
给定一个新字符串(char 数组),我需要使用分而治之的方法为其找到正确的索引。喜欢:
char choice[200];
cin>>chioce;
int k=myFunction(choice); // will return the index, 0 otherwise
// of course, could be more parameters
if( k )
cout<<k;
我不知道如何创建那个搜索功能(我试过了,我知道 D&C 是如何工作的,但我还在学习!)。
不,我不想使用字符串!
这是我尝试过的:
int myFunction(char *choice, int l,int r) // starting with l==0 && r==n-1
{
int m;
if(strcmp(a[m].name,choice)==0)
return m;
else{
m=(l+r)/2;
return myFunction(choice,l,m-1);
return myFunction(choice,m+1,r);
}
}
【问题讨论】:
-
而你没有使用
std::string,因为...? -
帮我使用字符,我还不知道字符串。
-
你应该包括你尝试过的东西,如果人们提出改进建议,发现错误而不是提供一个工作示例,它会帮助你更多。
-
@RubenP 你越早离开
char字符串越好,它确实应该是你学习c++的第一件事。 -
你快到了,想想“如果你找不到字符串怎么办”。提示:两个
return语句一个接一个地保证永远不会执行第二个。
标签: c++ c arrays divide-and-conquer