使用Arduino和C++进行字符串操作

Dan*_*Dan 3 c++ string arduino

我试图在C++中操纵一个字符串.我正在使用Arduino板,因此我对可以使用的内容有限.我还在学习C++(对不起任何愚蠢的问题)

这是我需要做的:我需要每小时发送一英里到7段显示.所以,如果我有一个像17.812345这样的数字,我需要在7段显示器上显示17.8.看起来最有效的方法是首先乘以10(这是将小数点右移一个位置),然后将178.12345转换为int(关闭小数点).我坚持的部分是如何分解178.在Python中我可以切割字符串,但我找不到任何关于如何在C++中执行此操作(或者至少,我找不到合适的搜索条件对于)

有4个7段显示器和7段显示控制器.它的速度可达每小时十分之一英里.非常感谢您提供的帮助和信息.

cob*_*bal 10

将它转换为字符串可能最简单,但只是使用算术来分隔数字,即

float speed = 17.812345;
int display_speed = speed * 10 + 0.5;     // round to nearest 0.1 == 178
int digits[4];
digits[3] = display_speed % 10;           // == 8
digits[2] = (display_speed / 10) % 10;    // == 7
digits[1] = (display_speed / 100) % 10;   // == 1
digits[0] = (display_speed / 1000) % 10;  // == 0
Run Code Online (Sandbox Code Playgroud)

并且,如评论中所指出的,如果您需要每个数字的ASCII值:

char ascii_digits[4];
ascii_digits[0] = digits[0] + '0';
ascii_digits[1] = digits[1] + '0';
ascii_digits[2] = digits[2] + '0';
ascii_digits[3] = digits[3] + '0';
Run Code Online (Sandbox Code Playgroud)