下面的代码正是我想要的。问题是我需要样本数组来比较字符串并保持计数。有没有办法在没有样本的情况下计算任何数组中每个字符串的出现次数
对于更多的上下文,最初的问题是从包含车辆信息的.txt文件中读取数据,如:
大众捷达
福特福克斯
大众捷达
并统计每个品牌的车辆数量。请记住,这是一门编程入门课程,我们不知道如何使用向量或映射
#包括<;iostream>;
#包括<;字符串>;
使用名称空间std;
使用std::string;
#定义最大值20
int main(){
整数计数器[最大值];
字符串arr[MAX]={quot;ABC";,“AOE";,“ADC";,“ABC";,“ADC";};
字符串样本[MAX]={quot;ABC";,“AOE";,“ADC";};
对于(int i=0;i<;=MAX;i++){
计数器[i]=0;
}
对于(int i=0;i<;MAX;i++){
对于(int j=0;j<;MAX;j++){
if(样本[i]==arr[j]){
计数器[i]++;
}
}
}
对于(int i=0;i<;3;i++){
cout<;<;样本[i]<;<;<;<;<;<;计数器[i]<;<;endl;
}
返回0;
}
您需要做的就是保留一个品牌名称列表(一个数组就可以了),以及每个名称的计数数组:
std::string品牌名称[100];
整数计数[100];//从文件中读取品牌名称[]的每个元素的次数
int num_items=0;
每次从文件中读取品牌名称时,请尝试在字符串数组中查找它。如果找到,只需在同一索引的计数中添加一个。如果未找到,请将其添加到品牌名称[]数组的末尾,将1添加到计数[]数组的末尾,并递增num\u项
您只需要一个简单的循环即可:
- 从文件中读取下一个品牌名称的外部循环
- 尝试在列表中查找品牌名称的内部循环