basic_string::c_str
목차를 C 스타일 문자열로 변환 null로 끝나는 문자열입니다.
const value_type *c_str( ) const;
반환 값
C 스타일의 버전 호출 문자열의 포인터입니다.Basic_string 클래스에서 개체의 소멸자를 포함 하는 비 const 함수를 호출한 후 포인터 값 잘못 되었습니다.
설명
C + + 템플릿 클래스 basic_string <char>에 속하는 문자열 형식의 개체 종료는 반드시 null입니다.Null 문자가 '\ 0' C 문자열에 특수 문자가 문자열의 끝을 표시 하는 문자열 형식의 개체에는 특별 한 의미가 없습니다 있고 다른 문자 처럼 문자열의 일부일 수 있습니다.Const는 자동 변환할 수 char * 문자열이 있지만 문자열에 클래스에 대 한 자동 변환은 C 스타일 문자열 형식의 개체를 제공 하지 않습니다 basic_string <char>.
이 문자열에 대 한 포인터를 무효화 시킬 또는 제한 된 수명이 문자열과 문자열 클래스를 소유 하 고, 삭제 반환 된 C 스타일 문자열, 수정 해서는 안 됩니다.
예제
// basic_string_c_str.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main( )
{
using namespace std;
string str1 ( "Hello world" );
cout << "The original string object str1 is: "
<< str1 << endl;
cout << "The length of the string object str1 = "
<< str1.length ( ) << endl << endl;
// Converting a string to an array of characters
const char *ptr1 = 0;
ptr1= str1.data ( );
cout << "The modified string object ptr1 is: " << ptr1
<< endl;
cout << "The length of character array str1 = "
<< strlen ( ptr1) << endl << endl;
// Converting a string to a C-style string
const char *c_str1 = str1.c_str ( );
cout << "The C-style string c_str1 is: " << c_str1
<< endl;
cout << "The length of C-style string str1 = "
<< strlen ( c_str1) << endl << endl;
}
요구 사항
헤더: <string>
네임 스페이스: std