다음을 통해 공유


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

참고 항목

참조

basic_string Class