事象
Line_notify使用中に、連結した文字列を出力しようとしたところArduino IDEにて下記エラーが表示される。
exit status 1
could not convert 'lmsg' from 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'String'
原因
Arduino関数 String()
はC++の型である文字列クラス std::string
をそのまま受け取ることは出来ない。
解決策
std::stringのメンバ関数であるc_str()を使い、char*
型のポインタを返すようにする。
具体的には以下。
const char* nyaa = hogehoge.c_str();
(参考)
- std::string::c str (C++入門)
- 【C++】string型をcharに変換/コピーする方法【値 配列 ポインタ string to char】
- error: cannot convert ‘std::__cxx11::string’ {aka ‘std::__cxx11::basic_string’} to ‘const char*’ line 23
- String() – Arduino 日本語リファレンス