C++のstring(basic_string)も時には、C言語の関数に渡したり、文字配列として扱う場合が度々あるだろう。
しかし、相手はC言語の仕様で作られている要素のため、そのまま渡すことはできない。
basic_string::c_str - cpprefjp C++日本語リファレンス
c_strは、stringオブジェクトの持つ文字列の先頭アドレスをC言語のconst char *で返してくれるメンバ関数。
これを使えば、C言語の関数に渡したり、文字配列として扱ったりできる。
strの内容をstrcpyでbufにコピーしている。
strをそのまま渡せないので、str.c_str()として、文字配列の先頭ポインタを渡して、内容をコピーさせている。
$ g++ basic_string.cpp -o basic_string $ ./basic_string str = ABCDE buf = ABCDE $
bufにコピーできている。
C言語の関数、配列、と、C++のstringを同時に気軽に使える。
Sample/cpp/basic_string/c_str/src/basic_string at master · bg1bgst333/Sample · GitHub