我已经声明了char arraychar BCommand[100]="00LI002LE99",我只想使用00299
这是我试过的代码:

 char Lcommand[3],Lecommand[3];
 unsigned char SlaveNodeID=0,NodeValue=0,ChSum2=0;
 Lcommand[0]=BCommand[4];
 Lcommand[1]=BCommand[5];
 Lcommand[2]=BCommand[6];
 Lecommand[0]=BCommand[9];
 Lecommand[1]=BCommand[10];
 SlaveNodeID = atoi(Lcommand);
 NodeValue = atoi(Lecommand);

有什么有效的方法可以做到这一点吗?

最佳答案

我认为您需要int值,如果您想要00299的整数值,可以使用这个。

int SlaveNodeID = (BCommand[4] - '0') * 100 + (BCommand[5]-'0') * 10 + (BCommand[6] - '0');
int NodeValue   = (BCommand[5] - '0') * 10  + (BCommand[6]-'0');

printf("%3d",SlaveNodeID);
printf("%2d",NodeValue);

如果希望它们成为字符串,则声明大小为4和3的字符数组使用sprintf()snprintf()而不是printf()

关于c - 如何获取特定的数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19605824/

10-13 22:47