在Arduino上从字符串转换为char *

时间:2014-07-29 12:35:06

标签: c++ arduino

方法sprintf()在Arduino上无效。我怎样才能将字符串转换为char *?

 if(triggerNumber == 4)
 { currenttrack = 5;
 }
  sprintf(trackName, "track%03d.mp3", currenttrack);

  playMP3(trackName); //Go play XX.mp3

3 个答案:

答案 0 :(得分:1)

我相信如果包含stdio.h,snprintf将会起作用

snprintf(trackName, sizeof(trackName), "track%03d.mp3", currenttrack);

答案 1 :(得分:1)

您可以使用Arduino中的String类。 在你的情况下

String trackName = "track";
track += currentTrack;
if (currentTrack < 9) {
    track += currentTrack;
}
else {
    track += "0";
    track += currentTrack;
}
track += ".mp3";
playMP3(trackName);

String类中还有其他可能有用的String操作方法。见http://arduino.cc/en/Reference/StringObject

答案 2 :(得分:0)

您可以简单地使用.c_str()。

  

返回一个指向一个数组的指针,该数组包含一个以空值终止的字符序列(即C字符串),代表字符串对象的当前值。

http://www.cplusplus.com/reference/string/string/c_str/