void lib_getNumsFromStr( CHAR *str, UINT8 len, UINT16 *nums ) { UINT8 i; for (i = 0 ; i < len ; i++) { if ((*str >= '0') && ( *str <= '9')) { /* 这里是用字符的ASCLL码值进行比较, * 要减去0的ASCLL码值即为实际的数字 */ *nums = (*nums)*10 + *str - '0'; } str++; } }
时间: 2024-04-01 10:37:30 浏览: 78
code uint8-t *p-flash 与uint8-t code *p-flash的区别
这是一段 C 语言代码,实现了从字符串中提取数字的功能。该函数名为 lib_getNumsFromStr,输入参数为一个指向字符数组的指针 str、字符数组的长度 len 和一个指向 UINT16 数组的指针 nums。该函数会遍历整个字符数组,如果当前字符是数字,将其转化为数字并保存在 nums 数组中。在这个过程中,该函数会将 nums 数组中的元素乘以 10,然后加上当前字符所表示的数字。这样,当遍历完整个字符串后,nums 数组中存储的就是输入字符串中所有数字的值。需要注意的是,该函数的字符比较是基于字符的 ASCII 码值进行比较的,也就是说,当当前字符为数字字符时,需要将其 ASCII 码值减去 '0' 的 ASCII 码值,才能得到对应的数字值。
阅读全文