C++编译错误:不定义该运算符或到预定义运算符可接收的类型的转换
#definem40typedefstruct{stringKeyName;//关键字名字intcount;//频度}HashTable;HashTableHT[m];i...
#define m 40
typedef struct
{
string KeyName;//关键字名字
int count;//频度
}HashTable;
HashTable HT[m];
int HashCount(char* ch)//计算散列函数值
{
int count;
int lz=7;
int l=sizeof(ch);
for(int i=0;i<l;i++)
{
count+=(int)ch[i];
}
count=count%lz;
return count;
}
void SearchHashTable(HashTable HT,char* ch)
{
int mm;
mm=sizeof(HT);
int H=HashCount(ch);
if(HT[H].KeyName==NULL) //错误出在这里!!!!!!error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换
{
HashTable htt;
strncpy(HT[H].KeyName,ch,sizeof(ch));
HT[H].count++;
return;
}
}
error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换
.KeyName”的左边必须有类/结构/联合 展开
typedef struct
{
string KeyName;//关键字名字
int count;//频度
}HashTable;
HashTable HT[m];
int HashCount(char* ch)//计算散列函数值
{
int count;
int lz=7;
int l=sizeof(ch);
for(int i=0;i<l;i++)
{
count+=(int)ch[i];
}
count=count%lz;
return count;
}
void SearchHashTable(HashTable HT,char* ch)
{
int mm;
mm=sizeof(HT);
int H=HashCount(ch);
if(HT[H].KeyName==NULL) //错误出在这里!!!!!!error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换
{
HashTable htt;
strncpy(HT[H].KeyName,ch,sizeof(ch));
HT[H].count++;
return;
}
}
error C2676: 二进制“[”: “HashTable”不定义该运算符或到预定义运算符可接收的类型的转换
.KeyName”的左边必须有类/结构/联合 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询