我正在尝试在arduino中将字符串转换为int(如java中的Integer.parseInt()),以便对数字进行一些操作。不幸的是,我的解决方案都不起作用。
直到现在,我尝试:
创建char数组并调用atoi函数:
String StringPassword;
uint8_t *hash;
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
Serial.println("Size");
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
为以null结尾的字符串创建字符数组并调用atoi函数:
String StringPassword;
uint8_t *hash;
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
Serial.println("Size");
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;
int j;
for (j = 0; j < 20; ++j) {
StringPassword.concat(hash[j]);
}
Serial.println("Size");
Serial.println(StringPassword.length());
Serial.println(StringPassword);
awa = StringPassword.toInt();
Serial.println(awa);
输出:
大小
48
168179819314217391617011617743249832108225513297
-14511年
将字符串更改为Int so的正确方法是什么:
awa=168179819314217391617011617743249832108225513297?
有人能解释一下为什么我的解决方案不起作用吗?我试图使用Stackoverflow和Arduino论坛上提到的函数来解决这个问题。