c中的字符串和int concat

时间:2015-06-04 09:57:49

标签: c++ arduino

我想知道是否有任何简单的方法在c中添加字符串和int。问题是我无法真正加载很多库,因为我正在处理一个内存很少的arduino。

简而言之,有没有办法在arduino中一起添加字符串和int?

我的解决方案现在直到现在一直都不优雅:

Serial.print(string);
Serial.print(seperator);
Serial.print(integer);
.
.
.
.

2 个答案:

答案 0 :(得分:0)

  1. 如果您想进行转换只是为了打印输出 串口,你拥有的代码可能是最好的解决方案, 即使它看起来不优雅。

  2. 如果您在说“字符串”时使用String object,则为您 可以使用:

    将整个表达式转换为String对象
    string + seperator + String(integer)
    

    但是Arduino String对象没有充分利用内存 如果您只打印结果,则没有理由这样做 到串口。

  3. 或者,您可以使用C字符数组,这样会更好 使用内存,以及来自stdlib的itoa函数,它增加了一些 600字节。请参阅printing numbers

答案 1 :(得分:0)

好吧,你可以用+添加两个整数,所以你真正需要的是一种将字符串转换为整数的方法。最简单的可能是sprintf

int j;
char const* s;
sprintf(s, "%d", &j);

如果您不想使用sprintf,您可以轻松编写自己的例程:

int stringToInt (char const *s)
{
    int i = 0;
    while (*s != 0)
    {
        i *= 10;
        i += (*s - '0');
        s++;
    }
    return i;
}

请注意,这将返回垃圾,除非s仅包含以10为基数表示的十进制整数。