スポンサードリンク
ESP32(いーえすぴーさんにー)とかで、たまに使う開発ツールArduino IDE(あるでぃのあいでぃーいー)。
文字列を別の文字列型へ変換するとき、いつもどうやってたかなー。と、思い出す事が多いので、もうメモってしまいました。
ESP32やArduino IDEのセットアップのお話は、以下ご参考ください。
目次
Arduino文字列変換
String → std::string
std::string stdstr;
String str;
str = "String test";
// String -> std::string
stdstr = str.c_str();
String → char[]
String str;
char c[256];
str = "String test";
// String -> char[]
strcpy(c, str.c_str());
std::string → String
std::string stdstr;
String str;
stdstr = "std::string test";
// std::string -> String
str = stdstr.c_str();
std::string → char[]
std::string stdstr;
char c[256];
stdstr = "std::string test";
// std::string -> char[]
strcpy(c, stdstr.c_str());
char[] → String
String str;
char c[256];
strcpy(c, "char[] test");
// char[] -> String
str = c;
char[] → std::string
std::string stdstr;
char c[256];
strcpy(c, "char[] test");
// char[] -> std::string
stdstr = c;
参考:Arduinoソースまとめ
void setup() {
Serial.begin(115200);
Serial.println("string test start ...");
std::string stdstr;
String str;
char c[256];
str = "String test";
Serial.println(str);
// String -> std::string
stdstr = str.c_str();
Serial.println(stdstr.c_str());
// String -> char[]
strcpy(c, str.c_str());
Serial.println(c);
stdstr = "std::string test";
Serial.println(stdstr.c_str());
// std::string -> String
str = stdstr.c_str();
Serial.println(str);
// std::string -> char[]
strcpy(c, stdstr.c_str());
Serial.println(c);
strcpy(c, "char[] test");
Serial.println(c);
// char[] -> String
str = c;
Serial.println(str);
// char[] -> std::string
stdstr = c;
Serial.println(c);
Serial.println("string test end ...");
}
void loop() {
}
実行結果
string test start …
String test
String test
String test
std::string test
std::string test
std::string test
char[] test
char[] test
char[] test
string test end …
最後に
Arduino IDEは、最近ではSpresense(ESP32みたいな)とか、ATtiny(めっちゃ小っちゃいマイコン)とかの開発も出来たりするので、身近な開発環境になっているかもしれません。
しばらく手を付けていないと、あれなんだったっけなーで、無駄な時間を取られることってよくあります・・・。私の脳内はメモリ容量がとても少ないので大変です。HDDへの保存が必須です。
最後まで見てくれてありがとう。
スポンサードリンク