Arduino:字符串到 int 得到奇怪的值 [英] Arduino: String to int gets strange values
本文介绍了Arduino:字符串到 int 得到奇怪的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将 String
转换为 int
,我能找到的只是你必须将 String 转换为 char 数组,然后将此数组转换为一个 int
,但我的代码产生奇怪的值,我无法弄清楚问题是什么.
I want to convert a String
to an int
, and all I could find is that you have to convert the String to a char array and then cast this array to an int
, but my code produces strange values and I can't figure out what the problem is.
void ledDimm(String command)
{
// Get the Value xx from string LEDDimm=xx
String substring = command.substring(8, command.length());
Serial.println("SubString:");
Serial.println(substring);
Serial.println("SubString Length:");
Serial.println(substring.length());
// Create a Char Array to Store the Substring for conversion
char valueArray[substring.length() + 1];
Serial.println("sizeof ValueArray");
Serial.println(sizeof(valueArray));
// Copy the substring into the array
substring.toCharArray(valueArray, sizeof(valueArray));
Serial.println("valueArray:");
Serial.println(valueArray);
// Convert char array to an int value
int value = int(valueArray);
Serial.println("Integer Value:");
Serial.println(value);
// Write the Value to the LEDPin
analogWrite(LEDPin, value);
}
串行输出如下所示:
Received packet of size 11
From 192.168.1.4, port 58615
Contents:
LEDDimm=100
SubString:
100
SubString Length:
3
sizeof ValueArray
4
valueArray:
100
Integer Value:
2225
我希望得到一个值为 100 的 int 但实际的 int 是 2225?!我在这里做错了什么?
I expected to get an int with the value of 100 but the actual int is 2225?! What have I done wrong here?
推荐答案
您需要使用函数 int value = atoi(valueArray);
其中 valueArray
为 null终止的字符串.
You need to use the function int value = atoi(valueArray);
where valueArray
is a null terminated string.
这篇关于Arduino:字符串到 int 得到奇怪的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文