basic_string::c_str

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