如何在C ++中将std :: string转换为const char *或char *?

在本节中,我们将看到如何将C ++字符串(std::string)转换为const char *或char *。这些格式是C样式字符串。我们有一个名为c_str()的函数。这将帮助我们完成任务。它返回一个指向一个数组的指针,该数组包含一个以空值终止的字符序列(即C字符串),代表字符串对象的当前值。

以下是std::string::c_str的声明。

const char* c_str() const;

该函数返回一个指向数组的指针,该数组包含一个以空值终止的字符序列(即,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