我已经声明了char arraychar BCommand[100]="00LI002LE99"
,我只想使用002
和99
。
这是我试过的代码:
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
值,如果您想要002
和99
的整数值,可以使用这个。
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/