小数到字符串的转换

问题描述 投票:0回答:1

我正在尝试在STM32CubeIDE中将十进制值转换为字符串,但会收到类似“无效的二进制运算符”的错误。我正在以十进制格式(3695)成功获取'&n'数据,并且需要转换为字符串。请纠正我。

我的代码是-

          void main()
      {
           int n[10];
           int a[10];
            int i;
                  while (1)
                   {

                      HAL_I2C_Master_Transmit(&hi2c1,0x16, &TxArr, 1, 1000);
                      HAL_I2C_Master_Receive(&hi2c1, 0x17, &n, 2, 1000);
                 for(i=0;n>0;i++)
                     {
                         a[i]=n%10 +'0'; 
                         n=n/10;
                         }
                     a[i]='\0';
                     }



 // Length = strlen(buf);
        //HAL_UART_Transmit(&huart3, &buf, Length, 100);
    //  HAL_Delay(300);
stm32 keil
1个回答
0
投票

通常来说,要将整数转换为字符串,可以使用sprintf函数。它应该在newlib甚至newlib-nano标准C库中都可用。

但是我的猜测是您有一个整数数组,其中每个元素都是0到9之间的数字?

如果是这样,您将遇到几个问题:您似乎像整数而不是地址一样处理变量n。另外,您的字符串应再长一个元素,并由字符组成。

您可能会执行以下操作:

char a[11];
for(i=0;i<10;i++)
{
   a[i]=n[i]%10 +'0'; 
}
a[11]='\0';
© www.soinside.com 2019 - 2024. All rights reserved.