Arduino中的字符串基本操作

Arduino中的字符串基本操作

  • 字符串与数值的转换
    • 数值转字符串

字符串与数值的转换

数值转字符串

c#代码

int i=10;
string s=i.ToString();

Arduino代码

char s[5];
int i=10;
itoa(i,s,20);

差别的核心在于Arduino使用c的语法,没有string的对象所以也没有对应的方法。定义string的对象只能用

char s[25];
char *s;

也就是说,字符数组全等于字符串

函数itoa()原型

char *itoa(int value, char *string, int radix);

原型说明: value:欲转换的数据。 string:目标字符串的地址。 radix:转换后的进制数,可以是10进制、16进制等。

功能:把一个整数转换为字符串。

//把整数123 打印成一个字符串保存在s 中。  、
sprintf(s, "%d", 123); //产生"123"

sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa。

//把整数123 打印成一个字符串保存在s 中。

sprintf(s, “%d”, 123); //产生"123"

可以指定宽度,不足的左边补空格:

sprintf(s, “%8d%8d”, 123, 4567); //产生:" 123 4567"

当然也可以左对齐:

sprintf(s, “%-8d%8d”, 123, 4567); //产生:“123 4567”

也可以按照16 进制打印:

sprintf(s, “%8x”, 4567); //小写16 进制,宽度占8 个位置,右对齐

sprintf(s, “%-8X”, 4568); //大写16 进制,宽度占8 个位置,左对齐

sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连

接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时

在它们中间插入别的内容,总之非常灵活)。比如:

char* who = “I”;

char* whom = “China”;

sprintf(s, “%s love %s.”, who, whom); //产生:"I love China. "

你可能感兴趣的:(Arduino)