在我的代码中,我将初始化char []。创建char数组的主要原因是列出我可能分析的所有组。假设这些不同的组代表三个不同大小的球,分别命名为“ ball1”,“ ball2”和“ ball3”。
对于这三个小组球,我在不同的时间有三个速度阵列。
int speed1[5] = {1,10,15,20,25};
int speed3[5] = {1,10,15,40,65};
int speed2[5] = {1,10,15,40,85};
现在,我想使用if语句打印速度。假设我要说的是当球的大小为“ ball1”时,我要打印速度的第一个数组:speed1 [5] = {1,10,15,20,25};
#include<iostream>
#include<string>
void test(){
int speed1[5] = {1,10,15,20,25};
int speed3[5] = {1,10,15,40,65};
int speed2[5] = {1,10,15,40,85};
char ball[32]={"ball1","ball2","ball3"};
float speed;
if (ball == ball1){
std::cout<<speed1<<endl;
}
}
您能否建议我如何在if条件语句中编写char字符串,以便仅对该字符串执行任何算术运算?
答案 0 :(得分:0)
我建议您完全不要使用char[]
。
这是一个非常简单的示例,说明如何显示球的速度(从0到2的整数):
#include <iostream>
#include <vector>
const std::vector<std::vector<int>> ball_speeds
{
{1,10,15,20,25},
{1,10,15,40,65},
{1,10,15,40,85}
};
void test (size_t ball) {
const auto& speeds = ball_speeds.at (ball);
std::cout << speeds.at (0)
<< "," << speeds.at (1)
<< "," << speeds.at (2)
<< "," << speeds.at (3)
<< "," << speeds.at (4)
<< "\n";
}
int main () {
test (0);
}
如果这不是您想要的,请编辑问题以使其更具体。
输出看起来像这样:
1,10,15,20,25
您可以使用带有unordered_map
键的std::string
而不是vector
来存储球速:
#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
const std::unordered_map<std::string, std::vector<int>> ball_speeds
{
{"ball1", {1,10,15,20,25} },
{"ball2", {1,10,15,40,65} },
{"ball3", {1,10,15,40,85} }
};
void test (std::string ball) {
const auto& speeds = ball_speeds.at (ball);
std::cout << speeds.at (0)
<< "," << speeds.at (1)
<< "," << speeds.at (2)
<< "," << speeds.at (3)
<< "," << speeds.at (4)
<< "\n";
}
int main () {
test ("ball1");
}
无论如何,就您在问题中所陈述的用例而言,就我而言,都不需要if语句。
一些其他建议:
尝试在C ++中使用std::string
(和std::string_view
),而不是char[]
。
如果您确实需要使用char[]
(或char*
),请熟悉the cstring header file。
特别是有std::strcmp
用于比较C样式字符串。