【发布时间】:2021-03-15 07:19:00
【问题描述】:
我有一个名为 char newString[][] 的 char 二维数组 我想将第 2 行和第 3 行转换为整数。 假设 newString[2]= {1,2} 和 newString[3]= {2,2]} 我试图通过将我的二维数组转换为整数来获得 int n = 12 和 int m = 22。因为后来我想做 m^n(m 的 n 次方)。
char newString[32][32];
int n;
int m;
// let newString[2]= {1,2}
// let newString[3]= {2,2}
// convert it to an int
m = newString[2] - '0'; // I want m = 12
n = newString[3] - '0'; // n = 22
我知道如果分配给整数,char - '0' 会给你一个整数,但是如何将二维数组分配给一个整数
我尝试使用这些,但它们仅适用于一维数组,有什么想法吗?
【问题讨论】:
-
您正在寻找
strtol。您尝试过的甚至不适用于一维数组,它适用于将3之类的字符转换为3。 -
请显示 minimal reproducible example 的有效方法以及示例输入和所需输出。
-
您没有提供 MRE。您不提供输入(即
newString的内容,并且您肯定不会期望来自未初始化的输入数组的任何内容)。你确实说你想要 12 和 22,但是基于显示的代码,根本不清楚。对于提供的样本输入,这不是所需的输出。是的,您确实说明了期望的结果,但没有任何根据,并且您没有提供我要求的其他信息。即使使用最近应用的编辑(它显示了一些您认为作为输入的内容,或者您想要作为输入的内容),它实际上并没有为 MRE 提供示例输入。 -
请考虑解释显示的“输入”与预期 12 和 22 之间的关系。对我来说存在巨大差异。如果您实际上将输入与使“12”和“22”的字符一起使用,但您新显示的代码具有整数,它将(乘以 10 的幂并相加)得到所需的结果,但这是不相关的到试图将字符表示转换为数字的代码的其余部分......
-
说真的,如果你用一维数组做了一些成功的事情,那么请显示一个minimal reproducible example。我敢打赌,代码与数组维度的不同之处更多。并且显示它也会对当前问题未提供的所有缺失声明、初始化等有很大帮助(其中一些,在编辑之后......)。请阅读How to Ask 并接受minimal reproducible example 的价值。
标签: arrays c multidimensional-array arduino