【问题标题】:Converting from string to char* on Arduino在 Arduino 上从字符串转换为 char*
【发布时间】:2014-09-20 20:00:49
【问题描述】:

方法 sprintf() 在 Arduino 上无效。我还能如何将字符串转换为 char*?

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

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

【问题讨论】:

  • 此链接可能有帮助,虽然它是 C++,但它与 Arduino 编程关系密切:link
  • 在标准 C++ 中,sprintf 不是 方法(它不是 member 函数)。它只是一个标准的函数

标签: c++ arduino


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以使用 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

    【讨论】:

      【解决方案3】:

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

      返回一个指向数组的指针,该数组包含一个以 null 结尾的字符序列(即 C 字符串),表示字符串对象的当前值。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 2015-08-03
        • 2011-12-16
        • 1970-01-01
        相关资源
        最近更新 更多