C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でstd::stringをconstchar*またはchar*に変換する方法は?


このセクションでは、C ++文字列(std ::string)をconstchar*またはchar*に変換する方法を説明します。これらの形式はCスタイルの文字列です。 c_str()という関数があります。これは、タスクを実行するのに役立ちます。文字列オブジェクトの現在の値を表すnullで終了する文字のシーケンス(つまり、C文字列)を含む配列へのポインタを返します。

以下は、std ::string::c_strの宣言です。

const char* c_str() const;

この関数は、文字列オブジェクトの現在の値を表すnullで終了する文字列(つまり、C文字列)を含む配列へのポインタを返します。例外がスローされた場合、文字列は変更されません。

サンプルコード

#include <iostream>
#include <cstring>
#include <string>

int main () {
   std::string str ("Please divide this sentence into parts");

   char * cstr = new char [str.length()+1];
   std::strcpy (cstr, str.c_str());

   char * p = std::strtok (cstr," ");
   while (p!=0) {
      std::cout << p << '\n';
      p = std::strtok(NULL," ");
   }
   delete[] cstr;
   return 0;
}

出力

Please
divide
this
sentence
into
parts

  1. C ++でCSVファイルを読み取って解析する方法は?

    C ++でCSVファイルを解析するには、ライブラリを使用する必要があります。自分でファイルを読み取ると見逃す可能性がある場合が多いためです。 C ++用のBoostライブラリは、CSVファイルを読み取るための非常に優れたツールセットを提供します。たとえば、 例 #include<iostream> vector<string> parseCSVLine(string line){    using namespace boost;    std::vector<std::string> vec;   &n

  2. C#でリストを文字列に変換する方法は?

    リストを宣言します。 List < string > l = new List < string > (); 次に、リストに要素を追加します。 // elements l.Add("Accessories"); l.Add("Footwear"); l.Add("Watches"); 次に、文字列に変換します。 string str = string.Join(" ", l.ToArray()); C#でリストを文字列に変換する最終的なコードを見てみましょう- 例 using Syst