Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách chuyển std::string sang const char* hoặc char* trong C++?


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