Phần này sẽ xem cách chuyển chuỗi C++ (std::string) sang const char* hoặc char*. Đây là chuỗi kiểu C. Ta có hàm c_str(). Nó giúp làm nhiệm vụ này. Nó trả về con trỏ đến mảng chứa chuỗi ký tự kết thúc null (chuỗi C) biểu thị giá trị hiện tại của đối tượng string.
Khai báo cho std::string::c_str:
const char* c_str() const;
Hàm này trả về con trỏ đến mảng chứa chuỗi ký tự kết thúc null (chuỗi C) biểu thị giá trị hiện tại của đối tượng string. Ngoại lệ nếu ném ra, chuỗi không thay đổi.
Ví dụ mã
#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;
}
Kết quả
Please divide this sentence into parts