【发布时间】:2018-10-01 09:11:41
【问题描述】:
我正在尝试在 arduino 中将字符串转换为 int(如 Java 中的 Integer.parseInt()),以便对数字进行一些操作。不幸的是,我的解决方案都没有奏效。 直到现在我都试过了:
创建char数组并调用atoi函数:
String StringPassword;
uint8_t *hash;
//Here I define hash
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
//Checking String Size
Serial.println("Size");
//Checking String
Serial.println(StringPassword.length());
Serial.println(StringPassword);
int jj;
char PasswordCharArray[StringPassword.length()];
StringPassword.toCharArray(PasswordCharArray, StringPassword.length());
awa = atoi(PasswordCharArray);
Serial.println(awa);
输出:
尺寸 48
168179819314217391617011617743249832108225513297
18209
为空终止字符串创建char数组并调用atoi函数:
String StringPassword;
uint8_t *hash;
//Here I define hash
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
//Checking String Size
Serial.println("Size");
//Checking String
Serial.println(StringPassword.length());
Serial.println(StringPassword);
int jj;
char PasswordCharArray[StringPassword.length()+1];
StringPassword.toCharArray(PasswordCharArray,StringPassword.length()+1);
awa = atoi(PasswordCharArray);
Serial.println(awa);
输出:
尺寸
48
168179819314217391617011617743249832108225513297
-14511
使用 toInt 函数:
String StringPassword;
uint8_t *hash;
//Here I define hash
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
//Checking String Size
Serial.println("Size");
//Checking String
Serial.println(StringPassword.length());
Serial.println(StringPassword);
awa = StringPassword.toInt();
Serial.println(awa);
输出:
尺寸
48
168179819314217391617011617743249832108225513297
-14511
将String更改为Int的正确方法是什么:
awa = 168179819314217391617011617743249832108225513297 ?
有人可以向我解释为什么我的解决方案不起作用吗?我尝试使用 Stackoverflow 和 Arduino 论坛上提到的函数来解决这个问题。
【问题讨论】:
-
Java 也无法转换这么大的数字。