【查询字符串】c++c语言查询所输入的字符串数组中指定的字符串一共出现的次数

【查询字符串】c++c语言查询所输入的字符串数组中指定的字符串一共出现的次数,第1张

  首先做题时,遇到字符串数组的输出总是不对,排除代码逻辑的原因后发现,竟然是因为开的二维数组第二维设置小了,最后发现应该把第二维稍微开大些。



  最终可运行的代码如下。


#include
int hashFunc(char s[], int len){
	int id = 0;
	for(int i=0;i<len;i++){
		if('A'<=s[i]<='B'){
			id = id*52 + (int) s[i]-'A';
		}else{
			id = id*52 + (int) s[i]-'a';
		}
	}
	return id;
}

int main(){
	int N, M;
	int i;
	int hashTable[52*52*52+10] = {0};
	scanf("%d %d", &N, &M);
	
	printf("有 %d 个待查询的字符串,有 %d 个需查询字符串\n", N, M);
	
	char s1[N][5];
	char s2[M][5];
	
	printf("输入待查询数组:\n");
	for(i=0;i<N;i++){
		scanf("%s", s1[i]);
		int id1 = hashFunc(s1[i],3);
		hashTable[id1]++;
	}
	
	printf("输入需查询数组:\n");
	for(i=0;i<M;i++){
		scanf("%s",s2[i]);
	}
	
	for(i=0;i<M;i++){
		int id2 = hashFunc(s2[i],3);
		printf("字符串 %s 出现了 %d 次\n", s2[i], hashTable[id2]);
	}
	
	return 0;
}

  教训:写代码的时候要适当把空间开大些,避免偶然出现的bug。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/562454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-01
下一篇 2022-04-01

发表评论

登录后才能评论

评论列表(0条)

保存