【C/C++】字符串应用-珠宝店

宝石A的价值是1、宝石B的价值是2、宝石C的价值是3·····宝石Z的价值是26。
为了防止被销售员虚报价格,小Z决定请你帮忙计算一下手链的价值。

输入描述:

本题有T组数据。 对于每组数据只有一行。 1≤T≤20 1≤手链长度≤100000

输入:

2
ABCD
LOVELOVE

输出:

10
108

思路:输入字符串,保存到string类的str中,再利用循环对str[i]进行每个字符元素的比较,因为A~Z对应ascii码值固定,则列举枚举类型对其隐式转换后的整型数据赋值为A1~Z1,作为switch的选项,同时将A~Z赋值为1~26,作为每个珠宝的价值

#include<cstdio>
#include<iostream>
#include<string>
enum price{A=1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z};
enum number{A1=65,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1};
using namespace std;
int main()
{
	int p = 0;
	string str;
	int t;
	cin >> t;
	while (t--)
	{
		cin>>str;
        p=0;
		for (int i = 0; i < str.length(); i++)
		{
			switch (str[i])
			{
			case A1:p += A; break;
			case B1:p += B; break;
			case C1:p += C; break;
			case D1:p += D; break;
			case E1:p += E; break;
			case F1:p += F; break;
			case G1:p += G; break;
			case H1:p += H; break;
			case I1:p += I; break;
			case J1:p += J; break;
			case K1:p += K; break;
			case L1:p += L; break;
			case M1:p += M; break;
			case N1:p += N; break;
			case O1:p += O; break;
			case P1:p += P; break;
			case Q1:p += Q; break;
			case R1:p += R; break;
			case S1:p += S; break;
			case T1:p += T; break;
			case U1:p += U; break;
			case V1:p += V; break;
			case W1:p += W; break;
			case X1:p += X; break;
			case Y1:p += Y; break;
			case Z1:p += Z; break;
			}
		}
		cout << p << endl;
	}
	
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值