arduino 将含有非数字字符的字符型转化成整数的函数
时间: 2023-11-29 08:04:05 浏览: 60
ESP8266_字符串API-综合文档
Arduino中可以使用`atoi()`函数将字符型转换为整型,但是`atoi()`函数只能处理纯数字的字符串。如果字符串中包含非数字字符,`atoi()`函数会返回0。因此,需要先判断字符串中是否只包含数字字符,如果是,则可以直接使用`atoi()`函数,如果不是,则需要使用其他方法进行转换。
以下是一个示例代码,可以将一个包含非数字字符的字符串转换为整型:
```C++
int strToInt(String str) {
int val = 0;
int sign = 1;
int i = 0;
if (str.charAt(0) == '-') { // 处理负数
sign = -1;
i++;
}
// 循环处理每个字符
for (; i < str.length(); i++) {
char c = str.charAt(i);
if (c < '0' || c > '9') { // 如果有非数字字符,返回0
return 0;
}
val = val * 10 + (c - '0'); // 将字符转换为数字,并将数字累加
}
return val * sign; // 返回最终结果
}
```
使用方法如下:
```C++
String str = "123abc";
int val = strToInt(str); // val的值为123
```
阅读全文