如何将值分配给非单个字符,然后在c++中输入字符时计算值的总和
How to assign values to non single character then calculate the sum of the values when the characters are inputted in c++
我需要将值3、4、6、7和9分别分配给字符t1、t2、t3、t4和t5,这样当你输入一些字符时,你就可以得到这些字符的赋值总和。例如,如果输入t1t2,则得到7,或者输入t1t3t4,则得到16,依此类推。下面是我尝试过的代码,但我意识到char变量只能识别单个字符,但在我的情况下,所有字符都是双字符(字母表和数字,如t1),我可能需要使用字符串,但我不知道如何使用。任何帮助都将不胜感激。
#include <iomanip>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char items[] = "t1t2t3t4t5";
int values[] = {3,4,6,7,9};
char entry[100];
std::cout<<"Enter an entry: ";
std::cin>> std::setw ( 100 ) >> entry;
int sum = 0;
for ( int i = 0; entry[i] != ' '; i++ ) {
for ( int j = 0; items[j] != ' '; j++ ) {
if ( entry[i] == items[j] )
sum += values[j];}
cout<< endl; }
std::cout<< "The sum is: "<<sum;
cout<<endl;
}
上面的代码显然没有将我的项目视为单个字符,它用数字分隔ts,并单独处理它们。
由于问题是关于c++的,我建议您使用std::unordered_map或std::map(如果需要对变量进行排序,则使用后者)。
示例:
std::map<std::string, int> marray;
marray["t1"] = 1;
....
std::string name;
int val;
std::cin >> name >> value;
marray[name] = value;
相关文章:
- 如何忽略第一个字符输入后的所有内容
- 使用单个变量对字符输入进行计数
- 确定用户字符输入 C++ 的结束
- 将单个字符串/字符输入串行监视器
- 如何将字符输入限制为仅获取一个字符串"cin"
- C++:使用 fgets() 读取字符输入时出错
- 如何拒绝 cin 中的字符输入并定义最小和最大整数值
- C++ 字符输入仅输出第一个字母
- 限制 2D 数组中的字符输入
- 循环直到整数输入在所需范围内无法处理非数字字符输入
- C++常量字符*输入
- 使用带符号字符输入的isalnum-Visual C++
- 限制C++中的字符输入
- 字符输入问题
- 字符** + 输入" "字符
- 文件 I/O 操作 - 奇怪的字符输入
- 如何在不暂停循环的情况下使用字符输入停止循环
- C++ - 对'if'语句使用特定字符输入
- 使用 "NEW" 获取字符输入和给定输出,并从用户那里获取字符串长度
- 正确的逐个字符输入