字符串到十进制的转换

标签 c string serial-port decimal

我正在使用 RS232 串行通信来旋转电机。串行通信是用字符串完成的,但我需要它的十进制值。关于如何进行的任何线索。我正在用 c 语言编码。我尝试使用 atoi 函数,但它不起作用。

char *p;

int z=atoi(p);

最佳答案

使用 strtoXXX() 系列函数。如果您需要 intlonglong long 或它们的无符号变体:

long l = strtol("1234567", NULL, 10);
long long ll = strtoll("1234567", NULL, 10);
unsigned long l = strtoul("1234567", NULL, 10);

如果您需要floatdoublelong double,请使用:

float f = strtof("3.1415927", NULL);
double d = strtod("3.1415927", NULL);

手册 herehere

关于字符串到十进制的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043377/

相关文章:

C#串口重定向

android - RFID在BluetoothSocket中获得串行连接

c - 多线程C程序中串口的调度和访问控制

c - 不兼容的指针类型 - C

c++ - 将delphi记录 "polymorphic"转换为c/c++

linux - 如何检查文件中存在的子字符串?

c++ - 类继承虚拟字符串不返回正确的东西

c - 如何仅使用指针直接访问内存位置?

c - 从 C 中的系统调用发送输入到 SCP 命令

ios - 我的 AVPlayer 的本地路径视频出现字符串错误