读取并统计每种字符串的的个数

C++ Primer 第五版这本书上的1.5.2练习部分的1.23,有个题目是:读取多条销售记录,并统计每个ISBN(每本书)的销售记录。
在这里我简化了思想:读取并统计每种字符串的的个数

#include <iostream>
using namespace std;
int main()
{
	string item;
	string isbn[10];//保存字符串的数组
	int isbnnum[10] = { 0 };//保存每种字符串的个数

	int i = 0;
	cin >> item;
	isbn[0] = item;
	isbnnum[0] = 1;//第一个值保存在数组中,由于只有一个值,个数为1

	while (cin >> item)//从第二个输入的值开始
	{
		int flag = 0;
		for (int j = 0; j <= i; j++) {//遍历数组,和输入的值进行比较
			if (isbn[j] == item) {//如果存在相等的
				isbnnum[j]++;//就把该下标位置的计数器加一
				flag = 1;//这里是为了后面的判断continue,进入输入下个值
				break;
			}
		}

		if (flag == 1) {//在数组中已经找到相同的值,所以进入下一个输入的值
			continue;
		}
		else {//如果没有在数组中找到相同的值,
			isbn[++i] = item;//则将这个新的值插入到数组的末尾。
			isbnnum[i] = 1;//新值的个数设置为1
		}
	}

	for (int a = 0; a <= i; a++) {//最终数组中的字符串的个数为i
		cout << isbn[a] << " " << isbnnum[a] << endl;//输出字符串和其对应的个数
	}

	return 0;
}

对于统计不同数字的个数同样适用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值